- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C#多线程技术 主要内容 1》多线程概述 2》thread类 3》线程的生命周期 4》线程的优先级 5》线程的同步 6》多线程的自动管理 6.1 线程概述 进程:是应用程序的一个运行例程,是应用程序的一次动态执行过程。 线程:是进程中的一个执行单元;是操作系统分配CPU时间的基本单元。 Windows是一个支持多线程的系统。进程相当于一个容器,一个进程可以包含若干个线程。 多线程的概念 多线程:在同一时间执行多个任务的功能,称为多线程或自由线程。 多线程的优点:提高CPU利用率。 主要缺点: 对资源的共享访问可能造成冲突(对共享资源的访问进行同步或控制) ;程序的整体运行速度减慢等等。 但从微观上讲,对单CPU线程还是串行的。 多线程 程序 1 线程 1 线程 2 线程 3 单独的执行路径 在以下情况中可能要使用到多线程: 程序需要同时执行两个或多个任务 程序要等待某事件的发生,例如用户输入、文件操作、网络操作、搜索等 后台程序 任何程序在执行时,至少有一个主线程。主线程创建其他的附加线程。第一个线程总是Main()方法,因为第一个线程是由.NET运行库开始执行的,Main()方法是.NET运行库选择的第一个方法。 主线程 6.2 .NET对多线程的支持 在.NET程序设计中,线程是使用Thread类(或Timer类(线程计数器)、ThreadPool类(线程池))来处理的,这些类在System.Threading命名空间中: Thread类:(实现线程的主要方法)一个Thread实例管理一个线程,即执行序列。通过简单实例化一个Thread对象,就可以创建一个线程,然后通过Thread对象提供的方法对线程进行管理。 Timer类:适用于间隔性的完成任务。 ThreadPool:适用于多个小的线程。 Thread类的主要属性 1、CurrentThread:获取当前正在运行的线程。 2、Name:获取或设置线程的名称。 3、Priority:获取或设置线程的优先级。 4、TreadState:获取或设置线程的当前状态。 5、IsBackground:指示线程是否为后台线程。 6、IsAlive:指示当前线程的执行状态。 7、CurrentContext:获取线程其中执行的当前上下文。 Thread类的主要方法 1、Start:启动线程。 2、Suspend;挂起线程。 3、Resume:继续已挂起的线程。 4、Interrupt:中断处于WaitSleepJoin线程状态的线程。 5、Join:阻塞调用线程,直到某个线程终止时为止。 6、Sleep:将当前线程阻塞指定的毫秒数。(休眠) 7、Abort:终止线程。 8、ResetAbort:取消为当前线程请求的Abort。 线程的建立与启动 新建一个线程的过程:只需将其声明并为其提供线程起始点处的方法委托,再用Thread.Start()方法启动该线程 (1)Thread a=new Thread(new ThreadStart(b)); 其中,b为新建过程中执行的过程名。 (2)调用Thread.Start()方法启动该线程a.Start(); 常用委托(了解) 在System.Threading中,ThreadStart、ParameterizedThreadStart是最常用到的委托。 在C#中,线程入口是通过ThreadStart代理(delegate)来提供的,ThreadStart相当于一个函数指针,指向线程要执行的函数,当调用Thread.Start()方法后,线程就开始执行ThreadStart所代表或者说指向的函数。 由ThreadStart生成的线程是最直接的方式。 ParameterizedThreadStart是为异步触发带参数的方法而设的。 线程的休眠、挂起、恢复与终止 线程的休眠和挂起 (1)调用Thread.Sleep()方法将当前线程休眠指定的时间。 注:Sleep()方法指定的时间以毫秒为单位。 (2)调用s1.Suspend() 方法将线程挂起 区别:前者为静态方法,并且使线程立即暂停一定时间;后者为实例方法,不会使线程立即停止执行,直到线程到达安全点之后,它才将该线程暂停。 线程的恢复与终止 调用Resume()方法将线程恢复; 调用Abort()方法将线程终止; Join 、Interrupt Join():使一个线程等待另一个线程停止(让渡优先权) 当前线程调用别的线程Join时,当前线程就会进入等待状态,等待调用线程完成所有操作后,当
您可能关注的文档
最近下载
- (新教科版)科学四年级上册全册教案及教学设计.pdf VIP
- 部编版八年级语文上册《短文二篇》PPT优秀课件.pptx VIP
- ZF_Intarder3_缓速器培训课件安喜光.pptx VIP
- 加氢搅拌器形式、原理及其发展趋势.pdf VIP
- 第一单元第2课《缤纷的世界美术流派》课件+教案-2025-2026学年人美版(2024)初中美术八年级上册.pptx VIP
- 初三冲刺班会动员课件PPT.pptx VIP
- 《一着惊海天》教学设计.docx VIP
- 电子信息工程专业未来就业岗位及发展前景分析报告.docx VIP
- 数字媒体艺术创意设计课件.pptx VIP
- 医院信息科笔试题库及答案.docx VIP
文档评论(0)