动态更改TPL数据流阻止.MaxDegreeOfParallelerism

AsV*_*leO 2 .net c# task-parallel-library tpl-dataflow

当我创建一个数据流块时,我指定它的.MaxDegreeOfParallelerism如下:

...New ExecutionDataflowBlockOptions With 
   {.MaxDegreeOfParallelism = System.Environment.ProcessorCount - 1}...
Run Code Online (Sandbox Code Playgroud)

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

svi*_*ick 5

不,你做不到.

你可以做的是用足够高的MDOP(可能Unbounded)创建块,并SemaphoreSlim用来限制你想要的并行度.

然后,当你想要改变并行度时,调用Release(int releaseCount)(增加它)或await WaitAsync()循环(减少它).