使用计时器的最佳方法是什么。使用System.Timer.Timer类或在带有Thread.Sleep语句的非终止循环中使用单个Thread?
提前致谢
答案 0 :(得分:3)
通常,如果满足您的需求,请使用已存在的组件。但是,System.Threading.Timer
使用.NET线程池,因此以下任何条件都会使其成为一个糟糕的候选者:
ThreadPool
个线程都是MTA)答案 1 :(得分:0)
使用计时器。它就在那里,专门用于那个目的,为什么你不用它?
答案 2 :(得分:0)
您引用的两种方法用于不同的结果。
计时器将触发事件并按计划的间隔调用您的方法。他们可以调用你的方法,而另一个实例正在运行,除非你在处理开始时停止计时器(DoWork)并在你完成时再次启动它(但是你可能会错过定时事件)。
循环和休眠的方法在繁忙时不会被调用。这里的“优势”是你可以DoWork,然后发现下一个计时器事件已经通过,DoWork立即再次。另一种方法是,无论DoWork方法花费多长时间,您都有休息时间,在此期间您可以睡眠指定的时间。