【发布时间】:2011-05-25 11:29:56
【问题描述】:
在一些这样的代码中
for (int i = 0; i < length; i++) //each iteration in another task
{
Method2();
}
//Task.WaitAll()
public void Method2()
{
Method3();
}
public void Method3()
{
Method4();
}
public void Method4()
{
process1.Start(); //this process take a lot of time so next iteration/next task should start in this place
}
我想在其他线程中运行每个迭代,但不是一次。一个线程应该转到 Method4(),运行它,然后等待结束这个进程。稍后另一个具有相同行为的线程等。并且在 Task.WaitAll() 程序中应该等待所有线程。
如何做到这一点?一次迭代中的 2 个任务,ContinueWith 还是 sth?
【问题讨论】:
-
您遗漏了 Method1,Method2 出现了两次。还要指出是否/在哪里有任何 CPU 密集型处理。
标签: c# multithreading .net-4.0 parallel-processing multitasking