我正在开发一个C#程序,它需要能够在不同的时间安排各种异步任务。我需要一个每秒激活一次的解决方案来检查要执行的任务,并尽可能少地占用资源。它还需要很好地扩展到大量任务。哪个更好用,或者有没有?
1)使用System.Timers.Timer对象,经过1秒的时间来触发执行任务的事件,或者
2)使用一个休眠1秒的单独线程,然后在唤醒时执行任务,或者
3)完全不同的东西。
答案 0 :(得分:6)
System.Threading.Timer
非常轻量级。您可以为每个任务创建一个单独的计时器,以便在任务执行时计时器到期。
在内部,我相信系统会跟踪接下来的计时器,因此它只需要在任何给定时间监视一个计时器(source/similar question)。
答案 1 :(得分:3)
尝试查看Quartz.Net以了解您的日程安排需求。我认为这很不错。