C# 使用QUARTZ.NET启动进程

C# 使用QUARTZ.NET启动进程,c#,process,cron,quartz-scheduler,quartz.net,C#,Process,Cron,Quartz Scheduler,Quartz.net,这是我的.NET控制台应用程序program.cs类中的方法 public static void Run() { var isRunning = false; IServiceCollection services = new ServiceCollection(); Startup startup = new Startup(); var serviceProvider = startup.ConfigureServi

这是我的
.NET
控制台应用程序
program.cs
类中的方法

public static void Run()
    {

        var isRunning = false;
        IServiceCollection services = new ServiceCollection();
        Startup startup = new Startup();
        var serviceProvider = startup.ConfigureServices(services);
        IWindsorContainer _container = 
        DateTime thisDay = DateTime.Today;
        while (true)
        {
            if (!isRunning)
            {
                isRunning = true;
                var configuration = _container.Resolve<IConfigurationRoot>();
                var _process = _container.Resolve<Process.Process>();
                var cron = (configuration[Enums.ExecutionTime]);

                if (thisDay == DateTime.Now)
                {
                    try
                    {

                        _process.MainProcess();

                    }
                    catch (Exception ex)
                    {
                    }
                    finally
                    {
                        isRunning = false;
                        Thread.Sleep(secondsForSleep);
                        _container.Release(_process);
                    }
                }
            }
        }
    }
publicstaticvoidrun()
{
var isRunning=false;
IServiceCollection服务=新的ServiceCollection();
Startup Startup=新启动();
var serviceProvider=startup.ConfigureServices(服务);
IWindsorContainer\u container=
DateTime thisDay=DateTime.Today;
while(true)
{
如果(!正在运行)
{
isRunning=true;
var配置=_container.Resolve();
var_process=_container.Resolve();
var cron=(配置[Enums.ExecutionTime]);
if(thisDay==DateTime.Now)
{
尝试
{
_process.MainProcess();
}
捕获(例外情况除外)
{
}
最后
{
isRunning=false;
睡眠(第二次睡眠);
_容器.放行(_过程);
}
}
}
}
}
我想用于启动
\u process.MainProcess()

然而,我能找到的所有例子都是关于启动
作业的
有人知道它是否支持启动流程,或者是否有解决方法吗?

您只需实现
IJob
接口,让作业运行流程:

[DisallowConcurrentExecution]
public class MyProcessJob : IJob
{     
    private readonly Process _process;

    public MyProcessJob(Process process)
    {
        _process = process;
    }

    public void Execute(IJobExecutionContext context)
    {
        _process.MainProcess();
    }
}

工作创建和安排在。

的旁注中有很好的解释,
if(thisDay==DateTime.Now)
只会在午夜准确出现,这真的是预期的行为吗?如果我找到了如何使用
quartz.net启动流程,我不会留下这个