当前位置:首页 » 编程博文
开发技术指南» 文章正文
    引言: .Net托管世界的应用程序域和线程 关键词:托管宿主公用语言运行库应用程序域程序集线程ManagedHostCLR(Common Language Runtime) AppDomainAssembly Thread 一、引子.Net框架提供了全新的计算平台,给出了一致性的面向对象的编程环境,...
 

 

 ·c#写的ubb代码累    »显示摘要«
    摘要:   参考了一些文章,整理了一下,大家可以直接拿去用吧,其实自从有了freetextbox这样的东东出现,ubb已经渐渐淡出江湖了。 using system;using system.text;using system.text.regularexpressions; namespace test.com{/// <summary> /// 功能:ubb代码 /// 作者:re......
 ·c/c++中数组名的含义    »显示摘要«
    摘要: c/c++中的数组名是个很奇怪的东西,它到底代表什么呢? 对于char array[n](n是一个常数),大概有这么几种语义: <1> const char* <2> char [n] <3> char (&)[n] 举例如下(vc.net 7.1下编译): <1> char *p = array; // array表示const ......


.Net托管世界的应用程序域和线程

.net托管世界的应用程序域与线程

【程序编程相关:C++/CLI会冲击C#吗?

关键词:托管 宿主 公用语言运行库  应用程序域 程序集 线程  【推荐阅读:使滚动条到屏幕左侧,不影响正文

一. 引子 【扩展信息:推荐C++教程(ZT)

 managed host  clr(common language runtime)  appdomain assembly thread

.net框架提供了全新的计算平台,给出了一致性的面向对象的编程环境,解决了安全.版本控制等原来系统平台中存在的问题,通过公用语言运行库(clr)提供了一个高效.安全的程序执行环境,也就是托管(也称作受控,managed)环境.在这个类似虚拟机环境下,我们编写的程序是如何运行.如何“托管”的呢?这个托管的世界如何同非托管的世界相互联系呢?

二. 如何进入“托管”世界

首先,我们要了解,到目前为止,还没有“纯天然的”.net执行环境(不排除类似java芯片的.net芯片将来会有),所谓托管的环境(clr)需要运行在当前已存非托管的系统上.要进入托管的.net世界,需要有一个称为宿主(host)的程序为将要运行的.net托管代码准备执行环境—也就是要加载.net世界的基础clr.在目前的windows系统上,能够担负这个重任的有3类已存程序:

1. shell(通常是explorer),提供从用户桌面启动.net程序,创建一个进程,启动此进程建立clr

2. 浏览器宿主(internet explorer),处理从web下载的.net代码执行.

3. 服务器宿主(如iis的辅助进程aspnet_wp.exe)

在执行任何托管代码之前,宿主必须首先加载并初始化公共语言运行库.假设一个.net可执行程序(prj1.exe)从shell启动,操作系统会首先建立一个进程,也就是宿主进程.装载的程序文件包括了在执行配置信息与执行代码,代码入口通常会被(创建此.net应用程序的编译器)放置一个 stub,这个stub实际上就是一个6字节的本机代码:

  jmp  _corexemain

而_corexemain是从外部库mscoree.dll导出,由prj1.exe引入的函数,于是操作系统会装入mscoree.dll(进入.net世界的序曲),修正_corexemain的运形时实际位置.

mscoree.dll实际上是一个com组件库.调用_corexemain后开始初始化clr,并察看prj1.exe的clr相关数据结构,确定执行.net托管代码的入口.宿主调用.net 支持api corbindtoruntimeex来装载clr,并且根据配置初始化clr的运行特征,譬如垃圾回收策略等,这是因为不同的宿主面临的应用需求不一样,一个服务宿主同普通的工作站宿主的“垃圾回收”(gc)机制显然不一样,所以启动clr时的参数也不一样.

宿主装载的是一个符合com规范要求的组件库文件mscoree.dll,也就是clr,一般存在于操作系统目录(便于装载).有关mscoree.dll更多的了解,建议可看看frameworksdk目录中的头文件mscoree.h.
...   下一页
    摘要:文章来源:http://soft.yesky.com/softchannel/72342371961929728/20040820/1844793.shtml绘 制 动 画 十 分 简 单, 只 需 遵 照 以 下 三 步 即 可;(1) 擦 去 整 个 小 程 序 绘 图 区;(2) 重 画 动 画 背 景;(3) 在 新 的 位 置 绘 制 图 形。 但 是, 当 动 画 连 续 帧 之 间 ......
» 本期热门文章:

©2000-2007 All Rights Reserved. 最佳浏览:1024X768 MSIE