在C#中,我希望能够在循环的每次迭代中调用一次方法,并为该方法调用创建一个线程。我希望该线程与循环创建的每个其他线程并发运行。我希望线程在循环中调用方法时生成,并且我希望循环继续到自身的下一次迭代并立即创建下一个线程。循环运行完毕后,我想等待所有线程完成。
我已经听说过ThreadPool.QueueUserWorkItem
,但在这种情况下似乎无法绕过它。
for(int i = 0; i < 10; i++)
{
myObject obj = new myObject();
obj.height = i;
obj.width = i+a*b/c;
var data = myMethod(obj);
}
答案 0 :(得分:5)
听起来您正在尝试手动实现的内容已经由{。{1}}和Parallel.For
形式的.Net框架为您创建:
Parallel.ForEach