使用Task.Factory.StartNew执行任务队列

时间:2015-02-11 10:41:12

标签: c# multithreading task

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

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

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

但在我的情况下,调用代码对任务的结果不感兴趣。我有代码处理任务中的失败,但它不是调用代码的责任。

我试图理解我的方法是否正确,或者是否有更合适的“C#方式”来执行任务队列。

1 个答案:

答案 0 :(得分:3)

  

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

虽然可能,但它几乎不是最好的方法。

您可能想要的是限制后台任务(允许任何订单)或操作的队列来执行。

而不是任务队列。 / p>

如果您想节流,请查看SemaphoreSlim

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

这两种方法都适用于同步和异步操作,它们比编写自己的&#34;任务队列更容易,更容易。#/ p>