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