摘要:
如果Timer的回调方法的执行时间很长,计时器可能在上个回调方法还没有完成的时候再次触发,如果我们只是想让一个回调方法执行完后再执行下一个回调方法,可以这样:private static Timer s_timer;static void Main(string[] args){ s_timer = new Timer(ComputeBoundOp, 5, 0, Timeout.Infinite);//为period参数指定Timeout.Infinite,这样计时器只触发一次 Console.ReadKey();}private static void ComputeBoundO... 阅读全文
随笔档案-2013年08月
.NET4.5 Console.ReadKey()在多线程下的BUG
2013-08-22 11:38 by 阮萤, 725 阅读, 收藏,
摘要:
.NET 4.5 在多线程的控制台里,Console.ReadKey()可能会造成线程死锁。看代码:static void Main(string[] args){ System.Timers.Timer timer = new System.Timers.Timer(1000); timer.Elapsed += timer_Elapsed; timer.Enabled = true; Console.ReadKey();// 使用Console.ReadLine() ;工作正常}static void timer_Elapsed(object sender,... 阅读全文
浙公网安备 33010602011771号