参考 MSDN http://msdn.microsoft.com/zh-cn/library/h339syd0.aspx
一旦所有前台线程在托管进程(其中 .exe 文件是托管程序集)中被停止,系统将停止所有后台线程并关闭。
案例1:
创建2个前台线程
案例1
private
static
void
Main()
{ Thread thread0 = new Thread( new ThreadStart(ThreadMethod0));
Thread thread1 = new Thread( new ThreadStart(ThreadMethod1));
thread0.Name = " thread0 " ;
thread1.Name = " thread1 " ;
thread0.IsBackground = true ;
thread1.IsBackground = true ;
thread0.Start();
thread1.Start();
}
private static void ThreadMethod0()
{
for ( int i = 0 ; i < 5 ; i ++ )
{
Debug.WriteLine( " 0 " );
Thread.Sleep( 2000 );
}
}
private static void ThreadMethod1()
{
for ( int i = 0 ; i < 5 ; i ++ )
{
Debug.WriteLine( " 1 " );
Thread.Sleep( 2000 );
}
}
{ Thread thread0 = new Thread( new ThreadStart(ThreadMethod0));
Thread thread1 = new Thread( new ThreadStart(ThreadMethod1));
thread0.Name = " thread0 " ;
thread1.Name = " thread1 " ;
thread0.IsBackground = true ;
thread1.IsBackground = true ;
thread0.Start();
thread1.Start();
}
private static void ThreadMethod0()
{
for ( int i = 0 ; i < 5 ; i ++ )
{
Debug.WriteLine( " 0 " );
Thread.Sleep( 2000 );
}
}
private static void ThreadMethod1()
{
for ( int i = 0 ; i < 5 ; i ++ )
{
Debug.WriteLine( " 1 " );
Thread.Sleep( 2000 );
}
}
输出结果为:
0
1
0
1
0
1
0
1
0
1
案例2:
创建2个后台线程,即保持原代码不变,将
thread0.IsBackground = false ;
thread1.IsBackground = false ;
输出结果为:
案例3:
创建1个前台线程,1个后台线程,即保持原代码不变,将
thread0.IsBackground
=
false
;
thread1.IsBackground = true ;
thread1.IsBackground = true ;
输出结果为:
0
1
0
1
0
1
0
1
0
1