C#线程的IsBackgroud属性动态设置
今天发现C#中线程IsBackgroud可以动态设置,这和Java可不一样。看看下面这个例子。
最初,新建了一个线程th并启动,Thread线程的IsBackground属性默认是false,所以线程启动后,由于由前台线程正在运行,所以程序并没有执行完毕。
当运行到第6秒的时候,IsBackground = true;所以没有前台运行的线程,程序执行结束。
class Program
{
static void Main(string[] args)
{
int i = 0;
Thread th = new Thread(() =>
{
while (true)
{
Thread.Sleep(1000);
Console.WriteLine(++i);
if (i > 5)
{
Thread.CurrentThread.IsBackground = true;//可以在程序运行时动态设置
}
}
});
th.Start();
}
}