【问题标题】:Listening to task scheduler events in c#在 C# 中监听任务调度程序事件
【发布时间】:2012-11-16 08:07:14
【问题描述】:

有一份任务清单及其时间表。 说任务 1 - 每天中午 12 点 任务 2 - 周一、周三 - 晚上 9 点 想按照他们的时间表解雇他们。

是否可以将它们注册到任务调度程序或 c# 中的其他调度程序\计时器,并具有唯一的上下文 - 任务 ID。在回调(比如某个事件)时,可以从上下文中获取 taskid 并使用 taskid,我可以触发操作。

基本上需要在预定时间与已经过去的上下文相遇时进行回调。我的代码最清楚在预定时间内必须做什么。

【问题讨论】:

    标签: c# events task scheduler


    【解决方案1】:

    您为什么不尝试使用quartz.net。这个调度器支持任务 ID 甚至调度上下文。还有很好的文档和大量示例。

    这里是task(aka Job)的例子,执行的上下文是从调度器发送的。

    public class DumbJob : IJob
    {
        public DumbJob() {
        }
    
        public void Execute(JobExecutionContext context)
        {
            Console.WriteLine("DumbJob is executing.");
        }
    }
    

    顺便说一句,不要忘记将调度程序设为静态 - 以避免被垃圾收集。我之前已经遇到过这个问题。

    【讨论】:

    • 感谢约翰尼的回复。点网库在这里不提供任何原生支持?
    • 有几个,比如计时器和计数器,但它们不像石英那样灵活,并且有很多缺点。当我第一次遇到 quatz.net 时,我已经重构了我所有的项目以使用它。仍在使用 =)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-23
    • 2012-04-21
    • 2011-07-25
    • 2020-08-11
    • 2019-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多