class TimerExampleState
{
public int minute;
public System.Threading.Timer tmr;
}
private static void Main()
{
System.Threading.Timer timer_addtoken;
TimerExampleState state_addtoken = new TimerExampleState();//支付token更新的定时器
TimerCallback addToken = new TimerCallback(A.CheckStatusAddToken);//回调函数用于定时器调用
timer_addtoken = new System.Threading.Timer(addToken, state_addtoken, 0, Timeout.Infinite);//定时器发生的时间,用于更新token
state_addtoken.tmr = timer_addtoken;
// Console.WriteLine("1s");
// Console.WriteLine(id);
// Console.WriteLine(ra.Next(1, 20));
Console.Read();
}
private void CheckStatusAddToken(Object state)
{
TimerExampleState s =(TimerExampleState)state;
Console.WriteLine(DateTime.Now);
(s.tmr).Change(1, Timeout.Infinite);
return;
}
求大神指点看看这段代码有没有问题,还有他的执行过程是什么样的啊,为什么change的第一个参数才是重复时间,第二个参数貌似一点用都没有,为什么呢?
https://msdn.microsoft.com/zh-cn/library/system.threading.timer.change.aspx
先搞清楚 Timeout.Infinite 是什么类型,用的什么重载。如果都是int,那么第二个参数是间隔时间,第一个是起始地延迟(都是毫秒为单位)