1.线程生命周期:

2.线程状态:
使用线程的ThreadState属性可以确定线程当前的状态,这个状态将是ThreadState枚举中指定的一个值:
Aborted(终止)——线程处于停止状态,但不一定执行完毕。
AbortRequested(请求终止)——Abort()方法已调用,但是线程还没有收到试图终止自己的System.Threading.ThreadAbortException,也就是说线程还没有停止,只是不久就会停止。
Backgroud(后台)——线程在后台执行。
Running(运行)——线程已经启动,而且没有停止。
Stopped(停止)——线程已完成了其所有的指令,而且已经停止了。
StopRequested(请求停止)——请求停止线程。
Suspended(挂起)——线程处于挂起状态。
SuspendRequested(请求挂起)——请求线程挂起。
Unstarted(未启动)——还没有在线程上调用Start()方法。
WaitSleepJoin(等待睡眠连接)——通过调用Wait(),Sleep(),Join()方法来暂停线程。
3.Thread类的相关方法:
|
公共方法的名称 |
说明 |
|
Abort() |
这个重载的方法在调用它的线程时产生一个ThreadAbortException,以终止这个线程的进程。 |
|
Interrupt() |
该方法中断处于WaitSleepJoin线程状态的线程。 |
|
Join() |
该重载的方法暂停调用线程,直到线程终止。 |
|
ResetAbort() |
该静态方法取消当前线程请求的Abort()方法。 |
|
Resume() |
该方法恢复被挂起的线程。 |
|
Sleep() |
该重载方法暂停当前线程,暂停时间为指定的毫秒数。 |
|
SpinWait() |
该静态方法让线程等待由iterations参数定义的一段时间。 |
|
Start() |
该方法让操作系统将当前线程的状态改为Threading.Running。 |
|
Suspend() |
该方法会挂起线程,如果线程已经被挂起,就不起任何作用。 |
本文详细介绍了线程的不同状态及其转换过程,并列举了Thread类中的关键方法,包括Abort()、Interrupt()、Join()等,帮助读者深入理解线程控制机制。
972





