class Program
{
public static void Main(String[] args)
{
var c = new C();
var thread = new Thread(new ThreadStart(c.F));
thread.Start();
Console.WriteLine("Exiting main, but the program won't quit yet...");
}
}
class C
{
public void F()
{
for (int i = 0; i < 10; i++)
{
Console.WriteLine("Waiting {0}", i);
Thread.Sleep(1000);
}
Console.WriteLine("Now the program will quit...");
}
}
控制台应用程序的幕后发生了什么导致它在退出之前等待另一个线程完成(指向文档的指针很好)?
注意:我知道这是一个基本问题 - 我之前总是设法等待线程完成,但从未考虑过有一些基础设施可以为我完成这件事......
当所有前台线程终止时进程结束
From Thread.IsBackground http://msdn.microsoft.com/en-us/library/system.threading.thread.isbackground.aspx关于前台线程与后台线程的备注:
线程可以是后台线程,也可以是前台线程。后台线程与前台线程相同,只是后台线程不会阻止进程终止。一旦属于某个进程的所有前台线程都终止,公共语言运行时就会结束该进程。任何剩余的后台线程都会停止并且不会完成。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)