在C#循环中为方法创建一个线程

use*_*287 1 c# multithreading

在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);
}
Run Code Online (Sandbox Code Playgroud)

Pio*_*ski 5

这听起来像你试图实现手动已经为您的.Net框架的形式创建的内容Parallel.ForParallel.ForEach:

Parallel.For(0, 10, i =>
{
    myObject obj = new myObject();
    obj.height = i;
    obj.width = i+a*b/c;

    var data = myMethod(obj);
});
Run Code Online (Sandbox Code Playgroud)