2024年5月25日发(作者:)

Winform的运行框架

虚线连接的方块是Winform加载时和其他应用程序的不同之处.

首先从第一个方块说起:加载Winform的进程,这里加载的并不是你所创建的应用程

序,而是.net框架已经创建好的系统进程.启动Winform时,加载Winform的进程,启动As

时,加载IIS的进程,各应用程序是不同的.

第二个方块:在CLR挑选好了要加载还是以后,就要加载

和你所编译好的Winform的EXE,然后交给JIT去编译成当前平台可疑使用的

机器码.

第三个方块:编译好机器码以后,就可以执行指令了,这里会创建Systemdomain,它包

含了SharedDomain和默认的应用程序域,也就是当前应用程序自己的域,前面我们说过一

个.net进程中可以包含多个默认的应用程序域,而这些应用程序域都会用到,如

果每个默认的应用程序域中都去加载它,那么无疑会造成内存的浪费,所以就有了SharedD

omain,它是用来放所有Domain都要用到的Dll,这样就避免了浪费内存.也优化了加载的

速度.

第四个方块:这时候默认的应用程序域,就会去找到你应用程序的入口Main方法,并且

执行它,创建第一个被Main中初始化的窗体(Form).

明白了Winform的启动过程,我们来看Winform程序中用到的主要类及其层次关系: