对照平行任务执行使用什么(Controlled Parallel task execution wh

2019-10-28 20:55发布

我在一些物体运行的并行任务,使这个速度,他们并行运行4。 现在有一种新的要求,我需要执行需要在同一时间执行的一个,而其他必须等待(其他人不能执行其他任务)的任务。

我不能让测试同步。

请检查图像波纹管作为一个更好的解释。

在一次执行一个已完成,但我想用一个信号量等待在开始和结束时的4个对象。 问题是,信号量不会等待所有为了留下另一个在得到完成。

它只能启动,当所有4个已完成离开这个执行。 我应该用什么呢?

Answer 1:

使用Barrier对象这种情况的发生4.这里一个参与计数是一个例子:

var barrier = new Barrier(4);

然后在你的任务的方法(S):

//do some work

//now, wait
barrier.SignalAndWait();

所有方法都将等到所有参与者都呼吁SignalAndWait()然后他们将继续。



文章来源: Controlled Parallel task execution what to use