我有一個自定義控件(繼承自TextBox),我正在.NET 4.0中工作。C#用戶輸入後的時間延遲
我需要做的是在用戶完成輸入後執行一些代碼,例如,他停止打字後一秒鐘。
爲了效率和每次文本更改,我都無法執行此代碼塊,因爲它有點費時。理想情況下,每次用戶啓動和停止輸入時只應調用一次。我已經開始在OnTextChanged
方法內使用Stopwatch的Restart()
。
這裏是我的設置:
public class MyBox : TextBox
{
private readonly Stopwatch timer;
protected override void OnTextChanged(TextChangedEventArgs e)
{
timer.Restart();
base.OnTextChanged(e);
}
}
我怎樣纔能有效地做到這一點?異步線程是否是答案?或者有其他方法嗎?
[無擴展名(http://msdn.microsoft.com/en-us/library/hh229400(V = vs.103)的.aspx)是目前做到這一點的最好辦法,但圖書館很難理解。 .net 4.5綁定上的 –
具有完全這樣的Delay屬性。 – majocha