zoukankan      html  css  js  c++  java
  • .Net Framework认知

    在托管代码的世界里,应用程序首先被加载到应用程序域(AppDomain)中,然后将应用程序域加载到进程中,一个进程可以包含多个应用程序域,也就是说一个进程可以包含多个应用程序,毕竟应用程序域之间的切换比进程间的切换要轻便。

    在应用程序域之间的数据时相互独立的,当需要在其他AppDomain当中执行当前AppDomain中的程序集代码时,可以使用CrossAppDomainDelegate委托。把CrocessAppDomainDelegate委托绑定方法以后,通过AppDomain的DoCallBack方法即可执行委托。

    class Program
        {
            static void Main(string[] args)
            {
                Console.WriteLine("主程序域开始运行");
                //建立新的应用程序域对象
                AppDomain newAppDomain = AppDomain.CreateDomain("子程序域");
                //绑定CrossAppDomainDelegate的委托方法
                CrossAppDomainDelegate crossAppDomainDelegate = new CrossAppDomainDelegate(MyCallBack);
                //子应用程序域调用委托,相当于子程序域调用主程序域里的方法
                newAppDomain.DoCallBack(crossAppDomainDelegate);
                //绑定程序域卸载事件处理方法
                newAppDomain.DomainUnload += (obj, e) =>
                {
                    Console.WriteLine("子程序域卸载!");
                };
                //卸载子程序域
                AppDomain.Unload(newAppDomain);
    
                Console.ReadKey();
            }
    
            static public void MyCallBack()
            {
                string name = AppDomain.CurrentDomain.FriendlyName;
                for (int n = 0; n < 4; n++)
                {
                    Console.WriteLine(string.Format("当前程序运行于{0}",name));
                }
            }
        }

    一个进程可以包含多个线程,线程存在于进程当中,它在不同的时刻可以运行于多个不同的AppDomain当中。它是进程中的基本执行单元 ,在进程入口执行的第一个线程被视为这个进程的主线程。在.Net应用程序中,都是以Main()方法作为入口的,当调用此方法时,系统就会自动创建一个主线程。线程主要是由CPU寄存器、调用栈和线程本地存储器(TLS)组成的。CPU寄存器主要记录当前所执行线程的状态,调用栈主要用于维护线程所调用到的内存与数据,TLS主要用于存放线程的状态信息。

  • 相关阅读:
    百度正确的打开姿势
    无法安装或运行此应用程序。该应用程序要求首先在"全局程序集缓存(GAC)"中安装程序集 收藏
    ASP.NET智能提示(一)
    全屏窗体的完整方法(转)
    AutoCompleteExtender轻易实现搜索智能提示 附带一点小讨论
    Winform实现百度搜索框智能提示功能( C# )
    C#(asp.net)仿baidu或google智能匹配搜索下拉框
    vs2008 asp.net ajax控件实现百度,谷歌智能搜索
    js实现搜索框智能提示上下移动效果
    sql server 去重复 转帖的
  • 原文地址:https://www.cnblogs.com/zhchsh/p/5283148.html
Copyright © 2011-2022 走看看