C#多线程技术ppt课件.ppt

C#多线程技术ppt课件.ppt

ID:58728815

大小:482.50 KB

页数:50页

时间:2020-10-04

C#多线程技术ppt课件.ppt_第1页
C#多线程技术ppt课件.ppt_第2页
C#多线程技术ppt课件.ppt_第3页
C#多线程技术ppt课件.ppt_第4页
C#多线程技术ppt课件.ppt_第5页
资源描述:

《C#多线程技术ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、VisualC#.NET 程序设基础教程第九章C#多线程技术本章主要内容9.1线程概述9.2.NET对多线程的支持9.3一个多线程程序9.4线程的优先级9.5线程的同步9.6应用实例9.7访问注册表9.8系统运行信息9.1线程概述进程:是应用程序的一个运行例程,是应用程序的一次动态执行过程。线程:是进程中的一个执行单元;是操作系统分配CPU时间的基本单元。Windows是一个支持多线程的系统。一个进程可以包含若干个线程。多线程的概念多线程:在同一时间执行多个任务的功能,称为多线程或自由线程。多线程的优点:可以同时完成多个任务;可以使程序的响应速度更快;可以让占用大量处理

2、时间的任务或当前没有进行处理的任务定期将处理时间让给别的任务;可以随时停止任务;可以设置每个任务的优先级以优化程序性能。主要缺点:对资源的共享访问可能造成冲突(对共享资源的访问进行同步或控制);程序的整体运行速度减慢等等。在C#应用程序中,第一个线程总是Main()方法,因为第一个线程是由.NET运行库开始执行的,Main()方法是.NET运行库选择的第一个方法。后续的线程由应用程序在内部启动,即应用程序可以创建和启动新的线程。9.2.NET对多线程的支持在.NET程序设计中,线程是使用Thread类(或Timer类(线程计数器)、ThreadPool类(线程池))来处

3、理的,这些类在System.Threading命名空间中:usingSystem.Threading;Thread类:(实现线程的主要方法)一个Thread实例管理一个线程,即执行序列。通过简单实例化一个Thread对象,就可以创建一个线程,然后通过Thread对象提供的方法对线程进行管理。Timer类:适用于间隔性的完成任务。ThreadPool:适用于多个小的线程。Thread类的主要属性1、CurrentThread:获取当前正在运行的线程。2、Name:获取或设置线程的名称。3、Priority:获取或设置线程的优先级。4、TreadState:获取或设置线程的

4、当前状态。5、IsBackground:指示线程是否为后台线程。6、IsAlive:指示当前线程的执行状态。7、CurrentContext:获取线程其中执行的当前上下文。Thread类的主要方法1、Abort:终止线程。2、GetDomain:返回当前线程正在其中运行的当前域。3、Interrupt:中断处于WaitSleepJoin线程状态的线程。4、Join:阻塞调用线程,直到某个线程终止时为止。5、ResetAbort:取消为当前线程请求的Abort6、Resume:继续已挂起的线程。7、Sleep:将当前线程阻塞指定的毫秒数。8、Start:启动线程。9、Su

5、spend;挂起线程。Thread类中线程的状态由Thread类的TreadState属性来确定:Abort、AbortRequested、BackGround、Running、Stopped、StopRequested、Suspended、SuspendRequsted、Unstarted、WaitSleepJoin线程的建立与启动新建一个线程的过程:只需将其声明并为其提供线程起始点处的方法委托,再用Thread.Start()方法启动该线程(1)声明:Threada;(2)实例化a=newThread(newThreadStart(b));其中,b为新建过程中执行的

6、过程名。(3)调用Thread.Start()方法启动该线程a.Start();例题1:线程的建立和启动usingSystem;usingSystem.Threading;publicclassA{publicvoidff()//线程启动时调用此方法{Console.WriteLine("A.ff()方法在另一个线程上运行!!");Thread.Sleep(3000);//将线程阻塞一定时间Console.WriteLine("终止工作线程调用此实例方法!!");}publicstaticvoidgg(){Console.WriteLine("A.gg()方法在另一个线

7、程上运行!!");Thread.Sleep(5000);//将线程阻塞一定时间Console.WriteLine("终止工作线程调用此静态方法!!");}}publicclassB{publicstaticvoidMain(){Console.WriteLine("***********线程简单示例!***********");Aa=newA();Threads1=newThread(newThreadStart(a.ff));s1.Start();Console.WriteLine("启动新线程ff()方法后,被Main()线程调用!!

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

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

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