- 1、本文档共27页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第14章Window应用程序开发课件
第14章 Window应用程序开发 在本书第1章中,曾经向读者介绍了Windows窗体应用程序开发的基础知识,本章将接着第1章的内容继续向读者介绍一些关于Windows窗体应用程序开发的更高级知识。 简单的程序可能只包含一个线程执行,而复杂的程序就会同时运行多个线程,可能一个线程从文件读数据,另一个线程执行计算,而第3个线程在屏幕上运行动画,于是在VS2010中提供了Tread类来支持多线程的开发。 这一章的主要内容如下: 认识线程 掌握多线程的应用 应用SDI和MDI窗体 使用各种对话框 GDI+的应用 14.1 多线程编程 线程是程序中的执行序列,使用C#编写任何程序时,都有一个入口Main()方法,程序从Main()方法的第一个语句开始执行,直到这个方法返回为止。 线程是使用Tread类来处理的,该类在Sytem.Threading名称空间中,一个Thread实例表示一个线程,即执行序列。通过简单实例化一个Thread对象,就可以创建一个线程。ThreadPool类表示由系统管理的工作线程的集合,用来执行各种任务。Monitor类封装了一个监控锁,用来实现对共享资源的监视。 14.1.1 线程的基本概念 在介绍线程概念之前,先介绍两个基本概念同步和应用程序域。同步元素是指一次只能被一个线程访问的元素。在多线程环境中,能够访问对象的是在特定时间占用该对象的锁的线程,锁可以是监控器锁、互斥锁或读写锁。线程可以获的锁、释放锁或等待另一个线程通知它们锁现在可用。 应用程序域的出现是.NET处理进程和线程方式的一个重大革新,它提供了在同一个进程中隔离线程的手段。在以前,开发人员只有一种选择,则必须在不同的进程中隔离组件。应用程序域却允许隔离在同一个进程中运行的不同代码块,每个应用程序域被分配一块进程的虚拟内存,CLR的类型安全检查确保一个应用域不能访问另一个域的数据。 14.1.1 线程的基本概念 14.1.2 线程的优先级和执行状态 在一个过程中,可以为不同的线程指定不同的优先级。一般情况下,如果有优先级较高的线程在工作,就不会给优先级低的线程分配任何时间片。高优先级的线程可以完全阻止低优先级的线程执行,所以在改变优先级时要特别小心。线程的优先级可以定义为ThreadPriorityEnumeration的值,即Highest、AboveNormal、Normal、BelowNormal和Lowest。 每一个进程都有一个基本优先级,这些值与过程的优先级是有关系的。给线程指定较高的优先级,可以确保它在该过程中比同一过程中的其他线程优先执行。要注意,Window给自己的操作系统线程指定高优先级。 14.1.2 线程的优先级和执行状态 14.1.3 线程同步 为了确保在某一时刻只有一个线程可以访问变量,出现了同步这一概念,专门用来保护变量的安全。 同步问题的产生本质是因为在C#源代码中,往往看起来是一个语句,被编译为汇编语言后就会成为许多句。只要一个C#语句翻译为多个本机代码命令,线程的时间片就有可能在执行该语句的进程中终止,如果是这样,同一个过程中的另一个线程就会获得一个时间片,如果涉及到这个语句的变量访问不是同步的,那么另一个线程可能读写同一个变量,那么就会出现它访问的是新信息还是旧信息了? 上面说的情况比较简单,如果在执行比较复杂的语句时,某个变量很有可能在某个较短的时间内有一个没有定义的值,如果另一个线程刚好此时要读取这个值,将只会什么也读不到。更严重的是,如果两个线程同时给一个变量写入数据,该变量在不同时刻肯定会包含不同的值。 14.1.3 线程同步 14.2 SDI窗体和MDI窗体应用程序 VS2010支持3种不同的窗体应用程序,即SDI应用程序、MDI应用程序和给予对话框的应用程序。SDI应用程序只支持打开一个文档。而MDI应用程序每次可以读写多个文件或文档,可以同时有多个子窗口,对多个文档进行操作。 14.2.1 SDI窗体应用程序 SDI应用程序就是处理单一文档的应用程序。通常SDI应用程序只用于完成单一的任务,涉及单一的文档。与其他两种窗体应用程序相比,涉及的操作比较多。 14.2.2 MDI窗体应用程序 MDI(多文档界面)应用程序用于同时显示多个文档,每个文档显示在各自的窗口中。MDI应用程序中通常包含子菜单的“窗口”菜单,用于在窗口或文档之间进行切换。 14.3 使用各种对话框 本节将向读者介绍在Windows窗体应用程序中经常出现的对话框。分别为打开文件对话框、保存文件对话框、还有关于打印的各种控件、字体和颜色对话框。 14.3.1 打开文件对话框OpenFileDialog OpenFileDialog组件是Window窗体应用程序中最常见的一种对话框。在各种应用程序中,这种对
文档评论(0)