如何通过该计时器的回调函数更改 System.Threading.Timer 中的时间间隔?
它是否正确?
这样做。没有发生。
public class TestTimer
{
private static Timer _timer = new Timer(TimerCallBack);
public void Run()
{
_timer.Change(TimeSpan.Zero, TimeSpan.FromMinutes(1));
}
private static void TimerCallBack(object obj)
{
if(true)
_timer.Change(TimeSpan.Zero, TimeSpan.FromMinutes(10));
}
}
该行生成无限递归:
if(true)
_timer.Change(TimeSpan.Zero, TimeSpan.FromMinutes(10));
第一个参数力TimerCallBack
立即执行。所以它会无限期地一次又一次地执行它。
解决办法是
if(true)
_timer.Change(TimeSpan.FromMinutes(10), TimeSpan.FromMinutes(10));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)