C#.NET程序设计 教学课件 作者 李旗 c#10.pptVIP

C#.NET程序设计 教学课件 作者 李旗 c#10.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十章 进程与线程 本章主要内容 进程的创建,绑定,启动和停止。 创建线程Thread对象,以及线程睡眠、中断和销毁,线程池ThreadPool 类,后台线程和前台线程。 使用Interlocked 类, lock 语句、Monitor 类,同步事件(AutoResetEvent 和 ManualResetEvent)和等待句柄等实现线程同步。 使用BackgroundWorker实现后台操作的Windows应用程序。 Windows应用程序窗体控件线程安全调用。 进程 进程是程序在计算机上的一次执行活动。程序是指令的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态的概念。 进程可以分为系统进程和用户进程。凡是用于完成操作系统各种功能的进程是系统进程,用户进程就是所有由用户启动的进程。在Windows下,进程又被细化为线程,也就是一个进程下有多个能独立运行的更小的单位。 创建和绑定到进程 使用 Process 组件,可以查看和管理大部分 Windows 进程任务。创建Process进程的实例有两种方法: “工具箱”创建 Process 组件的实例然后设置属性 “StartInfo”节(其中FileName是进程的程序名如Notepad)。 编程方式 Process myProcess = new Process(); 绑定到现有进程的方法是调用 GetProcessesByName 或 GetProcessById 方法来填充进程数组,然后使用索引属性值来操作数组中的单个进程。如: Process[] myProcesses = Process.GetProcessesByName(Notepad); myProcesses[0].CloseMainWindow(); 启动进程 在Windows系统中启动一个进程就是运行一个程序,如运行一个记事本程序等, 停止进程就是关闭一个正在运行的程序。 启动进程有以下两种方法: 设置由进程Process 实例的StartInfo 属性的启动信息,如进程执行文件,调用 Process 实例的Start 方法来启动进程,代码如下: Process myProcess = new Process(); myProcess.StartInfo.FileName = D:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE myProcess.StartInfo.WindowStyle = ProcessWindowStyle.Maximized myProcess.Start() 通过向Process类Start静态方法传递 FileName 参数来启动进程 : Process myProcess = Process.Start(Notepad.exe) 停止进程 停止进程,调用GetProcessesByName方法将检索要停止的进程。然后调用下列方法之一: 如果进程有用户界面且正在响应,则调用 CloseMainWindow 方法。 如果进程无窗口或有用户界面但无响应,则调用 Kill 方法。 Process[] myProcesses = Process.GetProcessesByName(Notepad.exe); if (myProcesses[0].Responding) myProcesses[0].CloseMainWindow(); else myProcesses[0].Kill(); 停止进程 具体使用以上那个方法停止进程要根据进程是否正在响应,可以使用 Responding 属性确定进程的用户界面是否正在响应,如果界面没有响应,则返回 false 属性值,有响应,则返回属性值为 true;如果需要强制冻结应用程序关闭,该属性很有用。下面的示例显示如何确定“记事本”是否正在响应,然后停止该进程。 查看运行的进程: 使用GetProcesses方法的返回Process 类型的数组: Process[] myProcesses = Process.GetProcesses(); 线程概述 操作系统使用进程将它们正在执行的不同应用程序分开,而进程中可以有多个线程同时执行代码。C#程序具有一个默认线程(或主线程),此线程执行程序中以Main方法开始和结束的代码。Main直接或间接执行的每一个命令都由主线程执行,当Main返回时此线程也将终止。不过,可以创建辅助线程,以便与主线程一起并行执行代码。这些线程通常称为辅助线程。 辅助线程可以用于执行耗时的任务或时间要求紧迫的任务,而不必占用主线程。例如,辅助线程通常用在服务器应用程序中,以便不必

您可能关注的文档

文档评论(0)

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档