System.Timers.Timer 在C#中是一个基础的定时器,使用也相当的广泛,有一个很小的技巧在这里记录一下,如何判断我的Timer是否已经Start()过了?
就像下面这样:
System.Timers.Timer timerLoad = new System.Timers.Timer(100);
timerLoad.Elapsed += TimerLoadElapsed;
private void TimerLoadElapsed(object sender, System.Timers.ElapsedEventArgs e)
{
var timer = sender as System.Timers.Timer;
timer.Stop();
//your othe task code...
timer.Dispose();
}
public bool IsStarted()
{
return timer.Enabled;
}
lebang2020.cn
说明
System.Timers.Timer 没有公开的 IsRunning 属性,判断是否已启动可用 Enabled 属性;AutoReset 为 true 时,启动后 Enabled 保持 true。
- 判断:if (timer.Enabled) 表示已启动(未 Stop)。
- 启动 / 停止:timer.Start() 等价于 Enabled = true,timer.Stop() 等价于 Enabled = false。
- 一次性任务可设 AutoReset = false,或改用 System.Threading.Timer。