刚用定时器不久,问题简单记录下
举例 System.Timers.Timer ,看过其他说的方法
initTimer.Enabled = false;
//do something
initTimer.Enabled = true;
总是改使能有风险,另外timer是线程池创建的,此法无效。
推荐2种方法:1、用标志位 2、加锁;下面用标志位举例
int flag = 0;//全局变量
if (Interlocked.Exchange(ref flag, 1) == 0)
{
//do something
Interlocked.Exchange(ref flag, 0);
}
Interlocked安全方式修改值。