gpt4 book ai didi

用户输入后的 C# 时间延迟

转载 作者:行者123 更新时间:2023-11-30 19:43:16 26 4
gpt4 key购买 nike

我有一个在 .NET 4.0 中使用的自定义控件(继承自 TextBox)。

我需要做的是在用户完成输入后执行一些代码,例如他停止打字后一秒钟。

为了提高效率,我不能在每次 Text 更改时都执行此代码块,因为它有点耗时。理想情况下,每次用户开始和停止输入时它应该只被调用一次。我已经开始使用 Stopwatch OnTextChanged 方法中的 Restart()

这是我的设置:

public class MyBox : TextBox
{
private readonly Stopwatch timer;

protected override void OnTextChanged(TextChangedEventArgs e)
{
timer.Restart();

base.OnTextChanged(e);
}
}

我怎样才能有效地做到这一点?异步线程是答案吗?还是有别的办法?

最佳答案

您可以轻松地使用 DispatcherTimer :

public class MyBox : TextBox
{
private readonly DispatcherTimer timer;

public MyBox()
{
timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(1) };
timer.Tick += OnTimerTick;
}

protected override void OnTextChanged(TextChangedEventArgs e)
{
timer.Stop();
timer.Start();
}

private void OnTimerTick(object sender, EventArgs e)
{
timer.Stop();
// do something here
}
}

关于用户输入后的 C# 时间延迟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15624329/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com