【发布时间】:2012-03-22 07:02:23
【问题描述】:
我有以下多线程程序:
class Program{
static void main(){
(new Thread(DoSomething)).Start();
}
static void DoSomething(){
// Dome something here...
}
}
几个问题:
- 子线程分离后主线程是否退出?
- 如果它退出并且子线程是后台线程:主进程是要退出还是等待后台线程完成?
【问题讨论】:
-
添加
Console.Write自己看看 -
问题 #2 有点多余。你首先问它是否只是要退出,然后你问它是否退出:“它退出”还是“它等待”?好吧,如果它退出,那么它就会退出。
-
@jlafay 子线程是否是背景是有区别的:)因此问题
-
主线程没有区别。无论如何它都会退出。
-
不管怎样,主线程可能会退出,但如果线程在前台,进程不会立即退出。您可以快速运行我在下面的答案中发布的代码,向自己证明这一点。他在第二个问题中指定了“进程”,而不是“线程”。
标签: c# .net multithreading