C#等待所有线程在Main()中完成

时间:2012-10-17 21:14:33

标签: c# multithreading

我一直在编写一个多线程应用程序来解决迷宫问题。我从Program ClassMain()方法开始一个新线程,开始解决迷宫问题。然后,如果他发现分叉,他将调用静态方法来创建新线程。我如何等待后台运行的所有线程完成,以便显示完成消息?

这是我正在尝试做的一个骷髅:

var explorer = new Explorer(/*Some arguments*/);
var thread = new Thread(explorer.Explore) {Name = "Thread 0"};
thread.Start();

//Thread_0_and_Threads_he_generates_through_static_class.Join()    

Console.WriteLine("I'm done bro.");
Console.ReadKey();

有办法做到这一点吗?老实说,第一次以这种方式使用多线程,所以我为糟糕的代码道歉。我非常乐意提供的任何其他信息。提前谢谢。

2 个答案:

答案 0 :(得分:3)

也许Thread.Join()正是您要找的?

你也可能会发现this article有用。

答案 1 :(得分:1)

多线程是一个非常令人愉快的主题。

由于您正在迈出第一步的线程,我建议您仔细参考Microsoft的Thread Synchronization优秀的begginers文章。

快乐的主题!