c#Threads和Thread.Join

Iva*_*ono 1 c# parallel-processing multithreading

我有一个我需要处理的10个项目的列表,每个项目使用一个单独的线程.代码应该是这样的:

foreach (Item item in items)
{
    Thread t = new Thread(() =>
    {
        ProcessItem(item);
    });
    t.Start();
}
Run Code Online (Sandbox Code Playgroud)

我还需要暂停线程(1秒减去执行线程所花费的时间).在这种情况下我应该使用Thread.Sleep吗?

nvo*_*igt 5

如果您不介意跳过线程的手动处理,则以下行应该完全符合您的要求:

Parallel.ForEach(items, ProcessItem);
Run Code Online (Sandbox Code Playgroud)

或者在处理每个之前睡觉(虽然这没有多大意义):

Parallel.ForEach(items, item => { Thread.Sleep(1000); ProcessItem(item); });
Run Code Online (Sandbox Code Playgroud)