创建数据流块时,请指定其.MaxDegreeOfParallelerism,如下所示:

...New ExecutionDataflowBlockOptions With
   {.MaxDegreeOfParallelism = System.Environment.ProcessorCount - 1}...


以后有什么办法可以改变吗?

最佳答案

不,你不能那样做。

您可以做的是创建具有足够高的MDOP(可能为Unbounded)的块,并使用SemaphoreSlim将并行度限制为实际所需的水平。

然后,当您想更改并行度时,请在循环中调用Release(int releaseCount)(以增加并行度)或await WaitAsync()(以减小并行度)。

关于c# - 动态更改TPL数据流块.MaxDegreeOfParallelerism,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22441338/

10-11 14:57