我想在C#应用程序中使用任务队列作为后台内容。
通过阅读网络上的内容,我了解到调用Task.Factory.StartNew
会将任务排入TaskScheduler
队列。
当我这样做时,我收到编译器警告,因为我没有等待Task.Factory.StartNew
的结果。
但在我的情况下,调用代码对任务的结果不感兴趣。我有代码处理任务中的失败,但它不是调用代码的责任。
我试图理解我的方法是否正确,或者是否有更合适的“C#方式”来执行任务队列。
答案 0 :(得分:3)
我想在C#应用程序中使用任务队列作为后台内容。
虽然可能,但它几乎不是最好的方法。
您可能想要的是限制后台任务(允许任何订单)或操作的队列来执行。
而不是任务队列。 / p>
如果您想节流,请查看SemaphoreSlim
。
如果您想要一个操作队列,请查看TPL Dataflow中的ActionBlock<T>
。
这两种方法都适用于同步和异步操作,它们比编写自己的&#34;任务队列更容易,更容易。#/ p>