使用 Task.Factory.StartNew 作为任务队列

Using Task.Factory.StartNew for tasks queue

我想在我的 C# 应用程序中使用任务队列处理后台内容。

通过阅读网上资料,我了解到调用 Task.Factory.StartNew 会将任务排入 TaskScheduler 队列。

当我这样做时,我收到编译器警告,因为我没有等待 Task.Factory.StartNew.

的结果

但在我的例子中,调用代码对任务的结果不感兴趣。我有处理任务失败的代码,但这不是调用代码的责任。

我想知道我的方法是否正确,或者是否有更合适的 'C# way' 执行任务队列。

I want to use a task queue for background stuff in my C# application.

虽然这是可能,但它几乎从来都不是最佳方法。

您可能想要的不是任务队列,而是节流后台任务(允许任何顺序),或者操作队列执行。

如果您想节流,请查看 SemaphoreSlim

如果您想要一个操作队列,请从 TPL Dataflow 查看 ActionBlock<T>

这两种方法都适用于同步和异步操作,而且它们都比自己编写要容易得多 "task queue"。