用QueueBackgroundWorkItem序列化任务

本文关键字:任务 序列化 QueueBackgroundWorkItem | 更新日期: 2023-09-27 18:10:43

我可以使用HostingEnvironment.QueueBackgroundWorkItem(…)来序列化任务吗?我的意思是任务不能重叠。一个新任务只有在另一个任务完成后才能开始。这是可能的与QueueBackgroundWorkItem或我需要旋转我自己的队列只有多个生产者(web请求),但一个消费者。

用QueueBackgroundWorkItem序列化任务

QueueBackgroundWorkItem向线程池添加任务。控制线程池中任务的执行顺序是非常困难的,但通常有几个任务同时运行。

如果你的"任务"是System.Threading.Tasks.Task,那么你可以按顺序运行它们而不阻塞:

var t = FirstTask();
t = t.ContinueWith( a => SecondTask() );
t = t.ContinueWith( a => ThirdTask() );
await t;