Thread 类
使用Thread类可以创建和控制线程,Thread类有如下方法:
Start():启动线程;
Sleep(int):静态方法,暂停当前线程指定的毫秒数;
Abort():通常使用该方法来终止一个线程;
Suspend():该方法并不终止未完成的线程,它仅仅挂起线程,以后还可恢复;
Resume():恢复被Suspend()方法挂起的线程的执行。
基本用法:
静态的方法:
在线程中运用实例的方法:
为了更好地控制线程,可以在线程启动前,设置Name属性,给线程指定名称。
为了获得当前线程的名称,可以使用静态属性Thread.CurrentThread,获取当前线程的Thread实例,访问Name属性,进行读取访问。
定义一个线程类
我们可以将 Thread 类封装在一个 MyThread 类中,以使任何从 MyThread 继承的类都具有多线程能力。 MyThread 类的代码如下:
为线程传递参数
如果需要给线程传递一些数据,可以采用两种方式。一种方式是使用带ParameterizedThreadStart委托参数的Thread构造函数,另一种是创建一个定制类,把线程的方法定义为实例方法,这样就可以初始化实例的参数,之后启动线程。
如果使用了ParameterizedThreadStart委托,线程的入口点必须有一个Object类型的参数,返回类型为void。
要注意的是,如果使用的是不带参数的委托,不能使用带参数的Start方法运行线程,否则系统会抛出异常。但使用带参数的委托,可以使用thread.Start()来运行线程,这时所传递的参数值为null。
给新线程传送数据的另一种方式是定义一个类,将线程的主方法定义为类的一个实例方法: