收藏 分销(赏)

C#进程和线程详解ppt课件.ppt

上传人:二*** 文档编号:12594033 上传时间:2025-11-08 格式:PPT 页数:23 大小:766.50KB 下载积分:5 金币
下载 相关 举报
C#进程和线程详解ppt课件.ppt_第1页
第1页 / 共23页
本文档共23页,全文阅读请下载到手机保存,查看更方便
资源描述
Slide Title,Body Text,Second level,Third level,Fourth level,Fifth level,进程和线程,第 十 六,章,目标,进程和线程的概念,进程的属性和方法,线程的执行,线程的优先级,线程的同步,进程,进程,概念:是应用程序的一次动态执行,命名空间:,Diagnostics,类:,Process,Diagnostics,命名空间,Process,类,类别,名称,作用,(,返回值,),数据类型,属性,ProcessName,获取进程名称,string,属性,ID,获取进程唯一标示符,int,属性,Threads,进程中的线程集合,Thread,属性,MachineName,获取运行进程的计算机名称,string,方法,GetCurrentProcess,获取当前的进程,Process,静态,方法,GetProcesses,获取计算机中运行的进程,Process,静态方法,Start,启动进程,Process,方法,Kill,关闭进程,void,同时执行所有任务,时间更少,效率更高,人 体,线程简介,3-1,读,写,一览无遗,血液循环,在同一时间点执行各项进程,编译程序,发送,/,接收邮件,打印文件,其他,操作系统允许计算机同时执行多项操作,程序,(进程),线程简介,3-2,程序,1,程序,2,线程,1,线程,2,线程,3,线程,1,线程,2,线程,3,单独的执行路径,多线程,线程简介,定义:,是进程中的一个实体,是被系统独立调度和分,派的基本单位,表示计算机执行的指令序列,与进程的区别:,子进程和父进程有不同的代码和数据空间,而多个程则共享数据空间,每个线程有自己的执行堆栈和程序计数器为其执行上下文,.,命名空间:,Threading,类:,Thread,线程简介,在以下情况中可能要使用到多线程:,程序需要同时执行两个或多个任务,程序要等待某事件的发生,例如用户输入、文件操作、网络操作、搜索等,后台程序,优先任务,线程,1),、引入线程名空间,using System.Threading;,2),、创建代理,ThreadStart,代理对象名,=new ThreadStart(,方法名,);,3),、创建线程,Thread,线程对象名,=new Thread(,代理对象名,);,4),、启动线程,线程对象名,.Start();,Thread,类,类别,名称,作用,(,返回值,),数据类型,方法,Thread,构,造函数,创建线程,Thread,方法,Start,启动线程,void,方法,Abort,终止线程,void,方法,Suspend,挂起(暂停)线程的执行,void,方法,Resume,继续执行挂起的线程,void,静态方法,Sleep,等待线程的完成,void,属性,IsAlive,判断线程的执行状态,bool,属性,IsBackground,判断线程是否是后台线程,void,属性,Name,获取或设置线程的名字,string,属性,Priority,读取,/,设置线程的优先级,ThreadPriority,线程启动与终止,线程只有启动后才会起作用。启动后,如果没有终止,不能再次启动它,启动线程:,线程对象名,.Start();,终止线程:,线程对象名,.Abort();,线程挂起及恢复,临时挂起线程,常见的应用是暂停声音文件或视频文件的播放),挂起线程:,线程对象名,.Suspend();,恢复线程:,线程对象名,.Resume();,线程的优先级,如果在应用程序中有多个线程在运行,但一些线程比另一些线程重要,该怎么办?,可以在一个进程中为不同的线程指定不同的优先级,线程的优先级,高优先级的线程可以阻止低优先级的线程执行,因此在改变线程的优先级时要特别小心。,线程的优先级可以定义为,ThreadPriority,枚举的值:,Highest,AboveNormal,Normal,BelowNormal,Lowest,用法:,线程对象名,.Priority=ThreadPriority.Highest,优先级示例,Domo,线程同步,使用线程的一个重要方面是同步访问多个线程访问的任何变量。,所谓,同步,,是指在某一时刻只有一个线程可以访问变量。,如果不能确保对变量的访问是同步的,就会产生错误。,同步关键字,-lock,C#,为同步访问变量提供了一个非常简单的方式,即使用,C#,语言的关键字,lock,,其用法如下所示:,lock(x),DoSomething();,同步注意问题,不要滥用同步,死锁,竞态条件,同步示例,3-1,在书店可能某种书籍只有一本,而两个售货员同时销售这本书,我们可以把两个售货员看作两个线程,那该如何处理呢?,同步示例,3-2,using System;,using System,.,Threading;,public class BookShop,public int num=1;/,共享资源,public void Sale(),int tmp;,lock(this)/,同步控制,tmp=num;,if(tmp 0),/,卖书过程,Thread,.,Sleep(1000);,num=num-1;,Console,.,WriteLine(,售出一本,);,else,Console,.,WriteLine(,没有了,);,同步示例,3-3,public class MyClass,public static void Main(),BookShop a=new BookShop();,Thread t1=new Thread(new ThreadStart(a,.,Sale);,Thread t2=new Thread(new ThreadStart(a,.,Sale);,t1,.,Start();,t2,.,Start();,Console,.,Read();,总结,进程和线程的概念,进程的属性和方法,线程的执行,线程的优先级,线程的同步,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 教育专区 > 初中其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服