首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

怎么避免timer不会在同一时间多次执行函数

2011-12-23 
如何避免timer不会在同一时间多次执行函数?System.Timers.TimertimernewSystem.Timers.Timer()timer.Sta

如何避免timer不会在同一时间多次执行函数?
System.Timers.Timer   timer   =   new   System.Timers.Timer();
timer.Start();
timer.Interval   =   1000   *   60   *   1;
timer.Elapsed   +=   new   ElapsedEventHandler(   process   );


我定义一个timer,每隔1分钟就去执行process函数,如何能避免在每次执行前,上次都已经执行完了呢?
也就是说:第一次这个函数还没有执行完,已经到了1分钟了,这个时候怎么避免不让第二次执行呢?

[解决办法]
加个isfinish的全局变量
[解决办法]
en,加个锁啊~
声明个全局的static 的object变量
private static object anyscObj = new object();
在process函数中使用
public void Process()
{
lock(anyscObj)
{
你的函数
}
}
[解决办法]
价格全局变量锁
函数加载时给个值 / 函数完成时 给个空值.

加载函数根据这个变量是否有值来 保证不重复加载
[解决办法]
private void process(object sender, EventArgs e)
{
((Timer)sender).Enabled = false; // 执行前先停止计时
/* TODO */
((Timer)sender).Enabled = true; // 执行后再开始
}

热点排行