- 1
- 0
- 约1.26万字
- 约 42页
- 2018-08-10 发布于未知
- 举报
学习情景2.3 单个串口设备数据的连续接收 2.3.3 相关知识 1 多线程技术概述 (1)线程的概念 Windows是一个抢占式多任务操作系统,在系统内核中提供了对多线程的支持,多线程技术可以让应用程序在一个耗时的操作中能够及时对用户操作进行响应,并且从宏观上达到多个任务“齐头并进”的目的 进程是应用程序的一个运行例程,是应用程序的一次动态执行过程。线程是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。每个进程至少需要一个执行线程,由系统自动创建,程序设计者可以根据需要创建其它线程。由于多个线程共享进程中的全局变量和系统资源,所以线程间的切换比较容易,通信也比较方便。 学习情景2.3 单个串口设备数据的连续接收 (2).NET Framework对多线程的支持 .NET平台库提供了Thread类对线程进行处理,该类包含在System.Threading命名空间中,程序中需要包含语句“using System.Threading;”。编程人员可以通过创建一个Thread类的实例来创建一个线程,并通过Thread类提供的方法对线程进行管理。Thread类的常用属性和方法如下表: 表2.3.1 Thread类的常用属性和方法 学习情景2.3 单个串口设备数据的连续接收 2 委托的概念和使用方法 C#中的委托的作用相当于C/C++中的函数指针,函数指针是一个函数的入口地址。必修使用函数指针的场合是:程序员A编写了函数f,该函数中需要执行另外一个参数和返回值已经确定,但名字暂时不能确定函数,所以给函数设置一个函数指针类型的形式参数;当程序员B使用函数f时,定义函数g,并把g的入口地址作为实际参数传递给函数f,这样就可以在f中执行函数g了。 线程的启动是使用函数指针的一个典型例子,在启动线程之前,先要给操作系统指明线程启动后执行哪一函数中包含的代码,这时就要把函数的指针传递给创建线程的函数。 回调(完成后通知)是使用函数指针的另外一个典型例子。如程序员A编写了负责接收网络数据的函数f1,程序员B编写了负责处理数据的函数f2,那么就可以把f2的函数指针作为参数传递给函数f1,当f1接收数据完毕后,自动调用f2。所以回调的特点是:站在程序员B的角度看,函数由自己编写,但是不由自己调用,且不知道什么时候被调用(因为网络速度有快有慢),函数编写者要做的就是把函数指针传递出去。 学习情景2.3 单个串口设备数据的连续接收 定义委托的关键字是delegate,它是从System.Delegate类派生出来的。例如: delegate int SomeDelegate(int p1,string p2); // int p1和string p2是被引用函数的参数类型和名称。其中参数类型和参数的个数必须和被引用函数的类型与个数一致。 3 创建和启动线程 一个线程必须和一个方法的入口(委托)关联起来,线程启动后,自动从该入口进入,执行函数体中包含的内容。 C#应用程序启动时,自动创建主线程,并进入Main方法开始执行,其它线程需要在程序里自己定义和启动。由于委托可以代表一个方法的入口 , 学习情景2.3 单个串口设备数据的连续接收 所以创建线程实例时只需要在Thread类的构造方法里传入一个委托实例即可,这个委托名叫ThreadStart,已经在线程命名空间中定义作了定义: public delegate void ThreadStart(); 所以创建线程方式如下: ThreadStart functionEntrance = new ThreadStart(threadFunction); Thread t = new Thread(functionEntrance); 在委托ThreadStart的构造方法里面传入的是方法名,这个方法可以是静态方法,也可以是某个对象的方法。线程对象创建后,我们就可以调用其Start方法开始线程的执行了。 学习情景2.3 单个串口设备数据的连续接收 我们可以在主线程里建立线程,也可以在线程里再创建线程,线程启动后会自动执行委托实例代表的方法,线程执行完后会自动销毁并释放其占用的资源。 在一个新线程中执行带参数的函数,操作步骤如下: ●定义线程函数: private void paramThreadFunction(object param) { //函数体 } ●用ParameterizedThreadStart委托封装线程函数: 学习情景2.3 单个串口设备数据的连续接收 ParameterizedThreadStart functionEntrance =
您可能关注的文档
最近下载
- 2026年浙江档案职称考试(档案工作实务)历年参考题库含答案详解.docx VIP
- 南通佳宜有限公司办公楼建筑结构设计.docx
- 拼拼豆教程及图案汇总[已排版可直接打印].doc VIP
- 共情传播视角下的网络微短剧叙事分析.docx VIP
- 贵阳市2024届高三适应性考试(一)一模物理试卷(含答案).docx
- 高中物理运动和力的关系10道计算题专题.docx VIP
- 语言学及应用语言学专业硕士研究生培养方案﹙050102﹚.docx VIP
- 10以内加减混合填空题(30页).docx
- 三相四线电能表不接零线电量分析0516..doc VIP
- 2025年乡村医生招聘考试试题题及答案.docx VIP
原创力文档

文档评论(0)