【问题标题】:Parallel.Invoke for threads in c#Parallel.Invoke 用于 c# 中的线程
【发布时间】:2014-10-16 12:21:05
【问题描述】:

谁能告诉我如何从线程列表中一次调用所有线程。

实际上我在创建它们之后将所有线程保存在一个列表中,但是如果我使用th.start()th.join() 方法,每个线程都会一个接一个地启动。我希望他们立即开始。

我使用时间函数来查看每个线程的开始和结束时间,但它们都不是同时开始的。

我开始这样的线程:

foreach (Thread st in threadss)
{
    st.Start();
    st.Join();
}

但我想这样开始:

Parallel.Invoke(() => st1.Start(), () => st2.Start(), .....);

请帮忙

【问题讨论】:

  • 你为什么打电话给Thread.Join?我很好奇,因为您可能根本不使用这种模式的线程。
  • 更重要的是,为什么需要自己制作线程池?你有什么不使用 TPL 的原因吗?

标签: c# .net multithreading invoke


【解决方案1】:

为什么不先.Start() 他们,然后.Join() 他们?应该可以正常工作。

foreach (var st in threadss) {
    st.Start();
}
foreach (var st in threadss) {
    st.Join();
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多