当我创建一个数据流块时,我会像这样指定它的MaxDegreeOfParallelism
:
...New ExecutionDataflowBlockOptions With
{.MaxDegreeOfParallelism = System.Environment.ProcessorCount - 1}...
有没有办法稍后更改?
当我创建一个数据流块时,我会像这样指定它的MaxDegreeOfParallelism
:
...New ExecutionDataflowBlockOptions With
{.MaxDegreeOfParallelism = System.Environment.ProcessorCount - 1}...
Unbounded
),并使用SemaphoreSlim
来限制实际需要的并行度。Release(int releaseCount)
(增加它)或在循环中等待await WaitAsync()
(减少它)。不行,您不能在使用同一块的同时更改度数。
但是,您可以从一开始就将其设置为更高的数字,并且它只会使用所需的数量(因此是Max
)。
或者,您可以创建一个具有更高MaxDegreeOfParallelism
的新块,并在等待旧块完成时开始将项目发布到它。