【发布时间】:2023-03-25 13:14:01
【问题描述】:
我有 4 个执行不同操作的类,这 2 个任务中的每一个都应该同步运行。
我当前的实现工作正常,但有时会出现奇怪的滞后,并且某些 processors 无法运行。这可能是我想的线程问题。
我想重构代码以使用Hangfire 库或任何其他方式来保持程序正常工作。我不知道如何财产做到这一点,并希望得到任何帮助。
public void Run()
{
var processors1 = new CommonProcessor[] { new AProcessor(), new BProcessor() };
//AProcessor should be first!
var processors2 = new CommonProcessor[] { new CProcessor(), new DProcessor() };
//CProcessor should be first!
Task task1 = Task.Run(() => RunSyncProcess(processors1);
Task task2 = Task.Run(() => RunSyncProcess(processors2);
Task.WaitAll(task1, task2);
}
private void RunSyncProcess(CommonProcessor[] processors)
{
while (true)
{
foreach (var processor in processors)
{
// do some job
}
Thread.Sleep(frequency);
}
}
【问题讨论】:
标签: c# multithreading task hangfire