有誰知道這段代碼是否線程安全,或者在調用timer2.Change時是否必須使用lock?定時器(System.Threading)線程安全
Timer timer1 = new Timer(timerCallback1);
Timer timer2 = new Timer(timerCallback2);
timer1.Change(5000, 5000);
timer2.Change(3000, 3000);
public void timerCallback1(object state)
{
timer1.Change(Timeout.Infinite, Timeout.Infinite);
timer2.Change(Timeout.Infinite, Timeout.Infinite);
DoStuff();
timer1.Change(5000, 5000);
timer2.Change(3000, 3000);
}
謝謝,是的,也許我會在DoStuff()之前做一個Sleep,給TimerCallback2時間來完成,否則我只是添加一個鎖。 – remdao 2010-06-17 08:35:57