当一个线程,被设置为IsBackground = true的时候,它就会放手,让主线程不用等,而主线程一退出,它就会退出。
为False时,则是要求主线程等待其执行完毕,它先退出,主线程再退出。
参考官方教程。
下面验证一下:
两个线程均为后台线程
注意看Main()
中的IsBackground
设置语句。
线程1-2运行的任务相同,但是运行次数不一样。
线程2运行时间更长一些。
本次测试中,两处均未被注释。
class Example
{
static void Main()
{
Thread t1 = new Thread(new ThreadStart((new BackgroundTest(10)).RunLoop));
t1.IsBackground = true; // 注意此处:1
Thread t2 = new Thread(new ThreadStart((new BackgroundTest(50)).RunL