我有一个在 .NET 4.0 中使用的自定义控件(继承自 TextBox)。
我需要做的是在用户完成输入后执行一些代码,例如在他停止输入后一秒钟。
每次 Text 更改时,我都无法执行此代码块,为了提高效率并且因为它有点耗时。理想情况下,每次用户开始和停止输入时,它应该只被调用一次。我已经开始在方法中使用Stopwatch。Restart()
OnTextChanged
这是我的设置:
public class MyBox : TextBox
{
private readonly Stopwatch timer;
protected override void OnTextChanged(TextChangedEventArgs e)
{
timer.Restart();
base.OnTextChanged(e);
}
}
我怎样才能有效地做到这一点?异步线程是答案吗?还是有其他方法?