多线程的非主线程的销毁机制

假设有如下代码所示的多线程:

 1 private void btnNewThread_Click(object sender, EventArgs e)
 2 {             
 3     Thread t = new Thread(new ThreadStart(Test));
 4     t.Start();
 5     this.btnNewThread.Enabled = false;
 6 }
 7 private void Test()
 8 {
 9      //……        
10 }

这个新建的线程t在执行完Test()方法后会自动销毁吗?还是需要写代码手动销毁呢?

下面就多线程的非主线程销毁机制做个总结:

1).t结束就自动销毁了

2).设置线程属性IsBackground=true

   将线程t作为后台线程,随着主线程结束而一起结束,不管这个线程有没有执行完。

3).手动销毁

可以在创建线程的时候加个线程名,然后存放到线程池里,在要销毁的时候从线程池找到对应线程销毁。

原文地址:https://www.cnblogs.com/Scl891004X/p/6121397.html