第03章-进程、线的程与应用程序域.ppt

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第03章-进程、线的程与应用程序域

3.2.2 程序集与反射 Assembly类 Assembly类是在System.Reflection命名空间中定义的,利用它可访问给定程序集的元数据,并包含可以执行一个程序集的方法。 元数据是一种二进制信息,用以对存储在公共语言运行库中可移植的可执行文件或存储在内存中的程序进行描述。 Assembly类提供有一个静态的Load方法,该方法可加载程序集。 3.2.3 创建和卸载应用程序域 常用属性 CurrentDomain属性(静态属性),该属性可获取当前线程所在的应用程序域。 BaseDirectory属性,该属性可获取域所在的应用程序的基目录,即该应用程序的根目录。 常用方法 CreateDomain方法,该方法用于创建新的应用程序域。 ExecuteAssembly方法,该方法用于执行应用程序域中的程序集(从入口点开始执行),参数中可直接指定可执行的文件名。 3.2.3 创建和卸载应用程序域 常用方法 Unload方法,该方法用于卸载应用程序域,是一个静态方法。 默认情况下,只有应用程序域中正在运行的所有线程都已停止或域中不再有运行的线程之后,才卸载该应用程序域。 CreateInstanceAndUnwrap方法,该方法用于在应用程序域中创建指定类的实例,并返回一个代理(proxy)。使用此方法可避免将包含创建的程序集加载到调用程序集中。 3.2.3 创建和卸载应用程序域 用于COM互操作的Load方法 使用Load方法也可以加载程序集。 Load方法主要用于为实现COM互操作性而提供的(通过它在应用程序域中调用COM对象)。或者说,该方法用于为COM对象提供对AppDomain.CreateInstance方法的版本无关的访问。 注意: 如果不是为了实现COM互操作,不要用该方法加载应用程序域。 也不应该使用Load方法将程序集加载到除从其调用该方法的应用程序域以外的其他应用程序域。 第3章习题和上机练习 本章习题 : 1 、2 、3 、4 本章上机练习: A.2 多任务网段扫描练习 A.2 多任务网段扫描练习 创建一个WPF应用程序,用多任务来扫描一个网段内的计算机,根据计算机的IP地址获取其主机域名。 (a) 输入地址不正确时用红底白字提示 (b) 单击开始扫描后的显示信息示意 图A-2 练习2的运行效果 * * * 工业和信息化部“十二五”规划教材 普通高等学校“十二五”规划教材 《C#网络应用编程》第3版 第3章 进程、线程与 应用程序域 * Ch1 进程、线程与应用程序域 3.1 进程和线程 3.2 应用程序域及其基本操作 3.1 进程和线程 3.1.1 基本概念 3.1.2 进程管理(Process类) 3.1.3 线程管理(Thread类) 3.1.4 线程池(ThreadPool类) 3.1.5 多线程编程中的资源同步 3.1.6 WPF中的多线程编程模型 * 3.1.1 基本概念 进程 进程是操作系统级别的一个基本概念,可以将其简单地理解为“正在运行的程序”。 进程之间是相互独立的。 在操作系统级别的管理中,利用Process类可启动、停止本机或远程进程。 线程 进从程序实现的角度来说,将一个进程划分为若干个独立的执行流,每个独立的执行流都称为一个线程。 一个进程中既可以只包含一个线程,也可以同时包含多个线程。 * 3.1.1 基本概念 逻辑内核数 利用System.Environment类提供的静态ProcessorCount属性,可获取本机可用逻辑内核的数量。例如: StringBuilder sb = new StringBuilder(); sb.AppendLine(本机处理器数: + Environment.ProcessorCount); sb.AppendLine(是否为64位操作系统: + Environment.Is64BitOperatingSystem); sb.AppendLine(当前进程是否为64位进程: + Environment.Is64BitProcess); sb.AppendFormat(\n当前进程占用的物理内存量:{3:#.##}MB, Environment.WorkingSet / 1024.0 / 1024.0); MessageBox.Show(sb.ToString()); 3.1.2 进程管理(Process类) System.Diagnostics命名空间下的Process类提供了在操作系统级别对进程进行管理的各种属性和方法。利用Process类,可以启动和停止本机进程、获取或设置进程优先级、确定进程是否响应、是否已经退出,

文档评论(0)

liwenhua00 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档