仅用一个线程配置Quartz.net或按顺序制作线程

age*_*t47 4 .net c# quartz-scheduler quartz.net

我在服务中有一项业务,我不知道线程需要多长时间才能完成其工作,因此我无法设置确切的时间间隔。或者以另一种方式,我想知道在前一个线程完成工作后如何设置线程启动。

jav*_*iry 5

您可以DisallowConcurrentExecution在工作中使用属性。该属性保证下一次执行直到当前执行完成才开始。

[DisallowConcurrentExecution]
public class MyJob : IJob {
    // whatever your job is
}
Run Code Online (Sandbox Code Playgroud)

对于顺序创建线程-我认为您的意思是说作业一旦完成就立即执行-您可以使用以下两种情况之一:

  1. 设置您的工作RepeatForEver并将间隔设置为非常小的数字,例如10 ms

  2. 将作业的重复次数设置为一次,完成后再安排新的(相同)作业

两者都会起作用。