该【Winform启动流程 】是由【guoxiachuanyue004】上传分享,文档一共【4】页,该文档可以免费在线阅读,需要了解更多关于【Winform启动流程 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。Winform的运行框架
编译为Ml或去EXE,内部实除上由日部井组咸:
EIL中间i吾言元数据程序集清单
CTS:公拄类型系统
'
CL□公共语言规范
进行蠣译1
C#.++W编译器乂
代码编译时
Ju动的是winFnrtii的进程
加載Winform编译好的EXE
抗行揩令
创建SystemDomain
)
加(〔CLR垫片]
GLR(包含垃圾回收器曲)
根据机器的CPU加$£(^-CPU:m5corewdksdll.^CPU-)
类加载tmscorliLdli®上面盼段生成的程庠集⑹丨,exe))
包括程序第清单内引用的其他程序集
由JlT根据特定的平舍编译为运彳亍指令
•N就埶行事擎
.朋七进程:可以包含N个AppDomain(Process类)
--调用Main方法,初始化第-个Winform
虚线连接的方块是Winform加载时和其他应用程序的不同之处.
首先从第一个方块说起:加载Winform的进程,这里加载的并不是你所创建的应用程序,
t框架已经创建好的系统进程•启动Winform时,加载Winform的进程,,加载IIS
的进程,各应用程序是不同的.
第二个方块:,,然后交给JIT去编译成当前平台可疑使用的机器码.
第三个方块:编译好机器码以后,就可以执行指令了,这里会创建Systemdomain,它包含了SharedDomain和默认的应用程序域,也就是当前应用程序自己的域,,,如果每个默认的应用程序域中都去加载它,那么无疑会造成内存的浪费,所以就有了SharedDomain,它是用来放所有Domain都要用到的Dll,这样就避免了浪费内存•也优化了加载的速度.
第四个方块:这时候默认的应用程序域,就会去找到你应用程序的入口Main方法,并且执行它,创建第一个被Main中初始化的窗体(Form).
明白了Winform的启动过程,我们来看Winform程序中用到的主要类及其层次关系:
x等
都派生于它
Object
AppIj匚日七i-on
Component
Control
SarollabIeControl
Form
UserControi
CommonDi合\og
,像大小,,TextBo
基础类•它提供了控件的基本功能/象.
ContainerControI
A
,PrintDialog.
.
性和方法允许你显示不同类型的forms,包含对话框和多文档界面(MDI)
Forms都派生自这个类因为它提供了forms所需要的基本功能.
「Control类也直接继承自ContainerControl类并且提供了空的控件让你可以使用WindowsFormsDesigner用来创建你自己的控件.
.
这里MS用到一种设计模式,在做应用程序界面时经常用到---Composite(组合)模式:
模式的意图:将对象组合成树形结构以表示''部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。
模式使用场景:
想表示对象的部分-整体层次结构。
希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象。
上述类层次中Component和设计模式图中Component—样,定义一些公用方法,ContainerControl就是设计模式图中Composite,它维护一个继承自Component的列表,,,我们知道一个Form可包含多个Pannel,而每个Pannel又可包含多个其他控件,,只要用FindControl就可找到,这和上面适用性"希望用户忽略组合对象与单个对象的不同,用户将统一地使用组合结构中的所有对象",也更有利于控件的组合.
Winform启动流程 来自淘豆网m.daumloan.com转载请标明出处.