线程:程序中的执行序列。每次创建一个新执行线程时,都需要指定从哪个方法开始执行。应用程序中的第一个线程总是Main()方法,因为它是.net运行时开始执行的第一个线程,后续的线程由应用程序在内部启动。
多线程的工作方式:一个处理器在某一刻只能处理一个任务。
操作系统可以同时处理多个任务,称为抢先式多任务处理:指windows在某个进程中选择一个线程,运行了一个时间片,再选择下一个被分配了时间片的线程。
Thread类:System.Threading命名空间。一个Thread实例表示一个线程,通过实例化一个Thread对象,就可以创建另一个线程。
实例化:备注:在一个应用程序中创建另一个线程,执行一些时间较久的任务,通常称为工作线程。
Thread a=new Thread();
a.Name="线程名称";
为了启动线程,需要指定线程应执行的方法,这个方法不带任何参数,且返回void。我们调用Thread.Start()方法来启动线程,该方法的参数是其入口的信息,因为该参数实际上是一个方法的信息,所以要使用委托。
eg1.
void ChangeColorDepth()
{
}
Thread DepthChangeThread=new Thread();
DepthChangeThread.Name="改变深度线程";
ThreadStart EntryPoint=new ThreadStart(ChangeColorDepth);//使用委托
DepthChangeThread.Start(EntryPoint);//参数是入口的信息,是方法的细节信息,所以使用ThreadStart委托。
线程的状态:
1、挂起:进入睡眠状态,仅停止运行某段时间,以后还可以恢复,从被挂起的那个状态重新运行
2、中止:即永久停止
DepthChangeThread.Suspend(); 挂起线程,或者如果线程已挂起,则不起作用。
DepthChangeThread.Resume(); 继续已挂起的线程,即恢复。
DepthChangeThread.Abort(); 调用此方法通常会终止线程。