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();
  }
}

原文地址:https://www.cnblogs.com/SimpleCode/p/7065748.html