创建数据流块时,请指定其.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/