我在.Net Framework 4.0中编写了一个Windows服务,我需要安排一个循环任务。新任务只能在前一个任务完成时运行,所以没有任何并行任务... 我的所有任务都发生在同一个对象(WCF Channel工厂)上。 完成一项任务需要将近2秒钟,并且可能每2秒或每小时安排一次。 我的约束是有这样的Windows服务作为无形/尽可能轻的内存和处理器使用的角度来看...C#在高效的Windows服务中安排循环任务的最佳方法
我已经找到了这些2种方式:
- 使用
System.Timers.Timer
与Autoreset
假=>我已经到 实施ElapsedEventHandler
,并通过我的共享对象(WCF 通道工厂) - 使用永无止境的循环:不知道MEM/proc中使用的 那个状态,但没有线程方面的照顾的。
有什么建议吗?
谢谢,祝你有美好的一天!
以下是我使用TPL实施重复任务的一种方式。它可能会给你另一个想法/路线。 http://stackoverflow.com/q/39457595/2985796 – KDecker