- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C++amp;C#第8讲C#多线程技术知识简介.pptx
C++ 和 C#
第8讲
1
主要内容
2
C#多线程技术简介
进程
进程是一个程序与其数据一道通过处理机的执行所发生的活动
进程是指程序实体的运行过程,是系统进行资源分配和调度的独立单位
进程是运行着的程序,是操作系统执行的基本单位
程序
是指令的有序集合,其本身没有任何运行的含义,是一个静态的概念。程序是静态的,进程是动态的
程序可以作为一种软件资料长期存在,而进程是有一定生命期的。程序是永久的,进程是暂时的
3
C#多线程技术简介
线程
是进程中的一个执行单元
是操作系统分配CPU时间的基本单元
Windows是一个支持多线程的系统。一个进程可以包含若干个线程
多线程的优点:
可同时完成多个任务
可使程序的响应速度更快
可让占用大量处理时间的任务或当前没有进行处理的任务定期将处理时间让给别的任务
可随时停止任务
可设置每个任务的优先级以优化程序性能
4
C#对多线程的支持
C#中,线程是使用Thread类(或Timer类(线程计数器)、ThreadPool类(线程池))来处理的,这些类在System.Threading命名空间中:
using System.Threading;
Thread类:(实现线程的主要方法)一个Thread实例管理一个线程,即执行序列。通过简单实例化一个Thread对象,就可以创建一个线程,然后通过Thread对象提供的方法对线程进行管理。
Timer类:适用于间隔性的完成任务。
ThreadPool:适用于多个小的线程。
5
Thread类中线程的状态
由Thread类的ThreadState属性来确定:
Abort
AbortRequested
BackGround
Running
Stopped
StopRequested
Suspended
SuspendRequsted
Unstarted
WaitSleepJoin
8
线程举例
在C#应用程序中,第一个线程总是Main()方法,因为第一个线程是由.NET运行库开始执行的。后续的线程由应用程序在内部启动,即应用程序可以创建和启动新的线程。
假定我们需要编写一个视频转码软件,用户点击转换按钮后开始转换指定的文件
整个视频转码过程需要一定的时间才能完成,而用户此时还可能需要移动或缩放程序的窗口,甚至暂停或中止当前文件的视频转码
需要创建一个单独的线程来处理这个视频转码过程使得在转码过程中可以不中断用户界面的响应。因此,我们需要实例化一个Thread对象来创建这个线程:
9
线程的建立与启动
新建一个线程的过程:只需将其声明,并为其提供线程起始点处的方法委托,再用Thread.Start()方法启动该线程
(1)声明:
Thread threadName;
(2)实例化
threadName =new Thread(new ThreadStart(b));
其中,b为新建过程中执行的过程名。
(3)调用Thread.Start()方法启动该线程
threadName.Start();
10
线程的挂起、恢复与终止
启动了一个线程后,线程将运行到所在的方法结束为止,在此期间还可以挂起、恢复或中止它。挂起一个线程就是让它进入睡眠状态,此时,线程仅是停止运行某段时间,不占用任何处理器时间,以后还可以恢复,从被挂起的那个状态重新运行。如果线程被中止,就是停止运行,Windows会永久地删除该线程的所有数据,所以该线程不能重新启动。
暂停线程:
Thread.Suspend();
如果用户以后要求恢复该线程,可以使用下面的方法:
Thread.Resume()
如果用户决定不需要继续运行该线程,单击“停止线程”按钮,可以使用下面的方法:
Thread.Abort()
11
示例1
线程的建立、启动、挂起、恢复与终止
12
ClassWorkThread WorkThread = new ClassWorkThread();
Thread countNum = new Thread(new ThreadStart(WorkThread.countNum));
MessageBox.Show(启动新线程countNum()!!);
countNum.Start();
MessageBox.Show(线程countNum()运行结束);
线程建立、启动
countNum.Suspend();
MessageBox.Show(线程countNum()运行暂停!);
countNum.Suspend();
MessageBox.Show(线程countNum()运行暂停!);
线程挂起
countNum.Abort();
countNum = null;
MessageBox.Show(线程c
您可能关注的文档
- (食品质量和 与安全研讨会)Structural Characterization and Functional Properties of Oat Bran Protein.ppt
- (食品质量和 与安全研讨会)Transport of egg white derived ACE-inhibitory peptides across Caco-2 cell monolayers.ppt
- (食品质量和 与安全研讨会)扩展青霉对不同品种猕猴桃汁的侵染性评价及植物精油的抑菌效果初探.ppt
- (食品质量和 与安全研讨会)诱抗剂处理对果蔬中单端孢霉烯族毒素积累的影响.ppt
- (餐饮生产流程相关管理)西餐服务流程相关管理.ppt
- (餐饮部成本控制课件)第一章 收入和 与费用.ppt
- (餐饮部成本控制课件)第十一章 营业收入控制系统的维持和 与改进.ppt
- (饲料科学课件)CHAPTER 1 国内外饲料学的发展概况.ppt
- (饲料科学课件)CHAPTER 2 饲料原料和 与特性1.ppt
- (饲料科学课件)CHAPTER 2 饲料原料和 与特性2.ppt
- 2023重庆科创职业学院招聘笔试真题及参考答案详解1套.docx
- 2023毕节医学高等专科学校招聘笔试真题及参考答案详解一套.docx
- 2023西安外事学院招聘笔试真题及参考答案详解一套.docx
- 2023河南对外经济贸易职业学院招聘笔试真题参考答案详解.docx
- 2023河南测绘职业学院招聘笔试真题带答案详解.docx
- 2023衡阳幼儿师范高等专科学校招聘笔试真题及答案详解一套.docx
- 2023河北司法警官职业学院招聘笔试真题附答案详解.docx
- 2023湖南汽车工程职业学院招聘笔试真题带答案详解.docx
- 2023湖南艺术职业学院招聘笔试真题附答案详解.docx
- 2023湖北幼儿师范高等专科学校招聘笔试真题及答案详解1套.docx
文档评论(0)