当ThreadStart例程返回时,线程会自动停止

本文关键字:线程 ThreadStart 例程 返回 | 更新日期: 2023-09-27 18:08:28

我创建了一个新线程,并为它分配了一个函数,用ThreadStart执行。下面是一个例子:

this.threadAppPtE = new Thread(new ThreadStart(synchronizeAppPte));

当我分配的函数结束时,线程是否自动停止,或者我必须手动结束它?

当ThreadStart例程返回时,线程会自动停止

http://msdn.microsoft.com/en-us/library/ms686724(v=vs.85).aspx

一个线程执行直到下列事件之一发生:

  • 线程调用ExitThread函数
  • 进程的任何线程调用ExitProcess函数。
  • 线程函数返回。
  • 任何线程调用带有该线程句柄的TerminateThread函数
  • 任何线程调用带有进程句柄的TerminateProcess函数。

是,线程将自动终止,只要它没有被阻塞并完成它的工作。显然,您首先需要调用threadAppPtE.Start()来启动它。

在线程还没有完成的地方重新加入线程是比较复杂的。有一篇很好的文章叫做创建和终止线程,它可能有助于更好地解释这个过程。