【发布时间】:2013-07-13 09:18:06
【问题描述】:
我有这种情况:
var tasks = new List<ITask> ...
Parallel.ForEach(tasks, currentTask => currentTask.Execute() );
是否可以指示 PLinq 在下一个线程产生之前等待 500 毫秒?
System.Threading.Thread.Sleep(5000);
【问题讨论】:
-
你想在这里达到什么目的?
-
我认为
Parallel.ForEach(tasks, currentTask => { Thread.Sleep(5000); currentTask.Execute(); });可以解决问题,但我很想知道您为什么要这样做 - 听起来像是一种解决方法? -
每个需要一段时间才能执行的任务从另一个资源中获取其数据,该资源只能每 0.5 秒命中一次。我想我可以将获取数据和执行任务分开......
-
不,这可能随时失败,不要假设它会在 500 毫秒内完成,你可以在这里使用
WaitHandles -
分离是这里的首选。