第十五讲线程的管理

第十五讲线程的管理

ID:35430032

大小:75.42 KB

页数:10页

时间:2019-03-24

第十五讲线程的管理_第1页
第十五讲线程的管理_第2页
第十五讲线程的管理_第3页
第十五讲线程的管理_第4页
第十五讲线程的管理_第5页
资源描述:

《第十五讲线程的管理》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、第十五讲线程的管理一、线程的常用属性:IsAlive属性:获収当前线程的执行状态。已启动并且尚未正常终止,则为true;否则为false0Name属性:获取或设置线程的名称。线程的命名staticvoidMain(){Thread.CurrentThread.Name="main";//将当前的线程命名为mainThreadworker=newThread(Go);//创建一个线程workerworker.Name="worker";〃将线程worker命名为workerworker.Start();/

2、/线程worker开始运行Go();〃主线程开始运行)staticvoidGo(){Console.WriteLine(H由"+Thread.CurrentThread.Name+"开始”);}注意:线程的Name属性设置后不能修改。IsBackground属性:获取或设置线程是否为后台线程。前台线程与后台线程,默认的线程为前台线程,主线程结束时,它创建的前台线程不会自动结束,一个应用程序只要有一个线程没有结束,应用程序就不会结束。可将线程的属性改为true,将它设置为后台线程,主线程结束时,它创建的后

3、台线程会自动结束。publicpartialclassForml:Form{Threadt;publicForml(){InitializeComponent();CheckForl1legalCrossThreadCalIs二false;t二newThrecid(Go);t.IsBackground=true;privatevoidbuttonlClick(objectsender,EventArgse){if(t.TsAlive==false)t.Start0;}voidGo(){inti=0;wh

4、ile(true){i卄;label1.Text=i.ToStringO;}}privatevoidbutton2_Click(objectsender,EventArgse){this.Close();}}Priority属性:获取或设置线程的调度优先级。Highest(高)、AboveNormal(高于一般)、Normal(一般)、BelowNormal(低于一般)、Lowesto(低)高优先级的线程通常会比一般优先级的线程得到更多的CPU时间。低优先级的线程在执行时遇到了高优先级的线程,它将让出C

5、PU给高优先级的线程。新创建的线程优先级为一般优先级。ThreadState屈性:获取当前线程的状态。Unstarted(未启动)、Running(运行)、WaitSleepJoin(休眠)、SuspendRequested(正被请求挂起)、Suspended状态(挂起)、AbortRequested(正被请求终止)、Stopped(已停止)。线程被创建时处于未启动状态,调用线程对象的Start。方法,可使该线程状态变为运行状态,线程被销毁或者终止,处于己停止状态。当前运行屮的线程调用Sleep方法,将

6、使Z处于休眠状态。线程将暂停运行,直到Sleep方法设左的时间到后,重新冋到Running状态。或者被其他的线程通过调用Thread.Intenupt()或者Thread.Abort()方法唤醒,重新回到Running状态。调用线程对象的Suspend方法,可使之处于挂起状态。若调用挂起的线程的Resume()方法使其重新变为Running状态。二、线程常用的方法:Interrupt():中断处于WaitSleepJoin状态的线程;Join():阻塞调用线程,直到某个线程终止时或经过了指定的时间为止;

7、Resume():继续已挂起的线程;Sleep():将当前线程暂停一段吋I'可,单位毫秒数;注意:该方法为静态成员。Start():启动线程的执行;Suspend():挂起线程;Abort():终止线程的状态。三、Join与Sleep的区别:staticvoidMain(){Thread.Sleep(O);//放弃CPU时间片Thread.Sleep(lOOO);//暂停1000毫秒Thread.Sleep(TimeSpan.FromHours(1));//暂停1小吋Thread.Sleep(Timeo

8、ut.Infinite);//暂停到被打断}SleepO方法为Thread类的静态方法,调用Thread.Slcep(O)将当前线程进入休眠状态。staticvoidMain(){Threadt=newThread(delegate(){Console.ReadLine();});t.Start();t.Join();//当前线程进入休眠状态直到线程t结束Console.WriteLine("ThreadtrsReadLinecomplet

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。