TPL - 如何强制TPL使用固定数量的线程?不少于这个数量。

5
2个回答

6

使用 Parallel.ForEach 和 LongRunning 有困难,不知该如何解决。有什么建议吗? - Suraj
你在我的编辑中提供的链接和你发布的链接一起使用就可以解决问题。 - Suraj

4
你有没有尝试在创建任务时使用 TaskCreationOptions.LongRunning ? 这只是一个提示,但我相信它可能会有所帮助:

指定任务将是长时间运行的、粗粒度操作。它向 TaskScheduler 提供了一条提示,表明可能需要过度订阅。

当然,这可能会使其超出 MaxDegreeOfParallelism 限制……你应该尝试找到一些详细解释的资源。顺便问一下,你是怎么创建任务的呢?

嗨,Jon - 好建议!我会深入挖掘一下,看看是否会超额订阅。我正在使用 Parallel.ForEach 创建我的任务。 - Suraj
在@BrandonAGr下发了一条评论 - 我在使用Parallel.ForEach时遇到了LongRunning的问题,有什么建议吗? - Suraj
@SFun28:嗯——看起来你不能在那里指定任务创建选项。要么自己创建任务,要么考虑编写自己的任务调度程序。 - Jon Skeet

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接