假设我有一个动作块A,它以最大并行度4并行执行一些工作。
假设我有一些情况,其中动作块A在某些情况下正在执行工作X而在其他情况下工作Y. X是一些小作品,Y是一些较大的作品,需要将它分成较小的工作块,因此我也需要将它们并行化。
因此,在内部工作中,我需要将工作块并行化到最大4度,但此时我可能有4个并行执行的块,这可能导致例如并行运行的“A-X,A-X,A-Y,A-Y”。这将导致1 + 1 + 4 + 4个并行任务,这对我来说是太多并行任务,因为我总是将其限制为最多4个(或任何其他选择的数字)。
有没有办法控制包括嵌套块在内的最大并行度?
答案 0 :(得分:1)
在TPL Dataflow中创建块时,您可以通过its options为块指定自定义调度程序。
限制并发任务数量和并发级别的简便方法是使用代码中的ConcurrentExclusiveSchedulerPair和您需要的参数。