他のいくつかのコメントは正しくないため、わかりやすくするために、System.Timers
Enabledをtrue に設定すると、経過時間がリセットされます。以下で動作をテストしました:
Timer countDown= new Timer(3000);
Main()
{
TextBox.TextDidChange += TextBox_TextDidChange;
countdown.Elapsed += CountDown_Elapsed;
}
void TextBox_TextDidChange(Object sender, EventArgs e)
{
countdown.Enabled = true;
}
void CountDown_Elapsed(object sender, EventArgs e)
{
System.Console.WriteLine("Elapsed");
}
テキストボックスにテキストを繰り返し入力すると、タイマーは最後のキーストロークの3秒後にのみ実行されます。ご覧のとおり、ドキュメントでも示唆されています。呼び出しは、Timers.Start()
単にEnabledをtrueに設定します。
確かに、私は最初から直接行ったはずですが、.NETリファレンスソースで、既に有効になっているタイマーを有効にすると、UpdateTimer()
内部でを呼び出すプライベートメソッドを呼び出すことがわかりますChange()
。