c#螺纹和螺纹。连接
我有一个需要处理的10个项目的列表,每个项目使用一个单独的线程。代码应该是这样的:c#螺纹和螺纹。连接,c#,multithreading,parallel-processing,C#,Multithreading,Parallel Processing,我有一个需要处理的10个项目的列表,每个项目使用一个单独的线程。代码应该是这样的: foreach (Item item in items) { Thread t = new Thread(() => { ProcessItem(item); }); t.Start(); } 我还需要暂停线程(1秒减去执行线程所需的时间)。在这种情况下,我应该使用Thread.Sleep吗?如果您不介意跳过线程的手动处理,那么下面的行应该完全按照您的要求执
foreach (Item item in items)
{
Thread t = new Thread(() =>
{
ProcessItem(item);
});
t.Start();
}
我还需要暂停线程(1秒减去执行线程所需的时间)。在这种情况下,我应该使用Thread.Sleep吗?如果您不介意跳过线程的手动处理,那么下面的行应该完全按照您的要求执行:
Parallel.ForEach(items, ProcessItem);
或者在每次处理之前睡觉(尽管这没有多大意义):
如果您不介意跳过线程的手动处理,那么下面的行应该完全按照您的要求执行:
Parallel.ForEach(items, ProcessItem);
或者在每次处理之前睡觉(尽管这没有多大意义):
您将使用
Thread.Join
等待其他线程完成其工作
Thread.Sleep
基本上会等待指定的毫秒数
Thread.Sleep
确实有副作用,不推荐使用
在您的上下文中需要注意以下几点:
项的数量增加了怎么办?)
检查
线程池
和线程安全
操作。您将使用线程。加入
以等待其他线程完成其工作
Thread.Sleep
基本上会等待指定的毫秒数
Thread.Sleep
确实有副作用,不推荐使用
在您的上下文中需要注意以下几点:
项的数量增加了怎么办?)
检查
线程池
和线程安全
操作。启动线程的代码看起来不错
您必须使用Thread.Sleep(持续时间以毫秒为单位)
使线程暂停一段持续时间
Join
将暂停当前线程,直到您加入的线程未完成其处理。启动线程的代码看起来正常
您必须使用Thread.Sleep(持续时间以毫秒为单位)
使线程暂停一段持续时间
Join
将暂停当前线程,直到您加入的线程未完成其处理。如果出于某种原因,您不想使用并行。ForEach
:
Thread[] threads = new Thread[10];
int count = 0;
foreach (Item item in items)
{
Thread t = new Thread(() =>
{
ProcessItem(item);
});
t.Start();
threads[count++]=t;
}
for (int i=0;i<10;++i)
threads[i].Join();
Thread[]threads=新线程[10];
整数计数=0;
foreach(项目中的项目)
{
线程t=新线程(()=>
{
处理项目(项目);
});
t、 Start();
线程[count++]=t;
}
对于(int i=0;i,如果出于某种原因,您不想使用并行。ForEach
:
Thread[] threads = new Thread[10];
int count = 0;
foreach (Item item in items)
{
Thread t = new Thread(() =>
{
ProcessItem(item);
});
t.Start();
threads[count++]=t;
}
for (int i=0;i<10;++i)
threads[i].Join();
Thread[]threads=新线程[10];
整数计数=0;
foreach(项目中的项目)
{
线程t=新线程(()=>
{
处理项目(项目);
});
t、 Start();
线程[count++]=t;
}
对于(inti=0;i使用Thread.Sleep
)
这是不同的事情
Thread.Sleep
阻塞(停止)当前线程一段时间
Thread.Join
阻塞(停止)当前线程,直到调用Join
的线程完成
也可考虑使用AS @ nVoigt建议。
< P>使用<代码>线程。睡眠< /代码> ./P>
这是不同的事情
Thread.Sleep
阻塞(停止)当前线程一段时间
Thread.Join
阻塞(停止)当前线程,直到调用Join
的线程完成
也可以考虑使用AS @ nVoigt建议。这个代码有什么问题吗?是不是有问题?是的,代码>线程。(代码)>你可以阅读MSDN……这个代码有什么问题吗?有问题吗?是的,<代码>线程。睡眠()/代码> -你可以阅读MSDN……有副作用吗?@MartinJames:我是说在上下文中,
sleep()
可以阻止当前线程。sleep()有副作用吗?@MartinJames:我是说在上下文中,sleep()
可以阻止当前线程。