เพื่อความชัดเจนเนื่องจากความคิดเห็นอื่น ๆ ไม่ถูกต้องเมื่อใช้System.Timers
การตั้งค่าเปิดใช้งานเป็นจริงจะรีเซ็ตเวลาที่ผ่านไป ฉันเพิ่งทดสอบพฤติกรรมดังต่อไปนี้:
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()
เพียงแค่ตั้งค่าเปิดใช้งานเป็นจริง
และเพื่อให้แน่ใจว่าที่ฉันควรจะได้เพียงแค่เดินตรงไปจากจุดเริ่มต้นคุณจะเห็นในแหล่งอ้างอิง .NETว่าถ้าเปิดใช้งานการตั้งเวลาเปิดใช้งานแล้วมันเรียกเอกชนวิธีการซึ่งภายในสายUpdateTimer()
Change()