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

 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).手动销毁

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

相关文章:

  • 2022-12-23
  • 2021-12-13
  • 2022-12-23
  • 2022-01-29
  • 2021-07-27
  • 2021-10-17
  • 2021-10-21
  • 2021-07-15
猜你喜欢
  • 2022-12-23
  • 2021-07-03
  • 2022-12-23
  • 2022-12-23
  • 2021-11-29
  • 2021-11-27
  • 2022-12-23
相关资源
相似解决方案