gpt4 book ai didi

c# - 如何让 Job 在 Quartz.Net 中引发 EventHandler?

转载 作者:行者123 更新时间:2023-12-02 08:50:33 26 4
gpt4 key购买 nike

我有一个实例化 Quartz 调度程序的控制台应用程序。
我想要一个作业来引发一个事件处理程序,以便“母应用程序”调用一个特定的方法。
问题是 Job Class 似乎与外部类非常隔离。
我确信有一个很好的方法可以做到这一点,但我还没有偶然发现它。

public class RestartJob : IJob
{
public RestartJob()
{
}

public virtual void Execute(IJobExecutionContext context)
{
//Send Restart EventHandler Subscription to Console.
}
}

最佳答案

我通过在包含调度程序逻辑的类上实现单例解决了我的问题。很有魅力。希望这可以帮助其他人解决在我看来是“必备”功能的问题。

public class Skeduler
{
private static Skeduler instance;

public static Skeduler Instance
{
get
{
if (instance == null)
{
instance = new Skeduler();
}
return instance;
}
}

public delegate void SendRestartX();
public event SendRestartX SendRestart;

public void doSendRestart()
{
if (SendRestart!=null)
SendRestart();
}

//(Job Methods & Logics Goes Here)

}

public class RestartJob : IJob
{
//Required
public RestartJob()
{
}

public virtual void Execute(IJobExecutionContext context)
{
Skeduler.Instance.doSendRestart();
}

}

用法:

    public MainClass
{
public void Run()
{
skeduler = Skeduler.Instance;
skeduler.SendRestart += new Skeduler.SendRestartX(MethodToCall);
}
}

关于c# - 如何让 Job 在 Quartz.Net 中引发 EventHandler?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8828722/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com