C#线程简述

来源:互联网 发布:淘宝看店宝怎么安装 编辑:程序博客网 时间:2024/04/28 12:31

  

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

原创粉丝点击