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() | 该方法会挂起线程,如果线程已经被挂起,就不起任何作用。 |
写于 2007-5-9