zoukankan      html  css  js  c++  java
  • .net 获取AppDomain创建了多少

    partial class HttpBrowser
        {
            public static string IsolateCall(PageContentHandler pHandler)
            {
                Contract.Requires(pHandler != null);
    
                string name = Guid.NewGuid().ToString("N");
                var box = SandboxManager.Create(name, true);
                try
                {
                    string entryType = "AnfleCrawler.Common.IsolatedBrowser, AnfleCrawler.Common";
    #if DEBUG
                    App.LogInfo("IsolateCall EntryType:{0}", entryType);
    #endif
                    //string ret = (string)box.Execute(entryType, pHandler);
                    string ret = (string)box.Execute(entryType, "xCross", new object[] { pHandler });
                    if (ret == null)
                    {
                        throw new InvalidOperationException(string.Format("IsolatedBrowser {0}", entryType));
                    }
                    return ret;
                }
                finally
                {
                    SandboxManager.Unload(box);
    #if DEBUG
                    App.LogInfo("IsolateCall Domains:{0}", string.Join("#", GetAppDomains().Select(p => p.FriendlyName)));
    #endif
                }
            }
    
            private static IEnumerable<AppDomain> GetAppDomains()
            {
                var list = new List<AppDomain>();
                IntPtr enumHandle = IntPtr.Zero;
                var host = new mscoree.CorRuntimeHostClass();
                try
                {
                    host.EnumDomains(out enumHandle);
                    object domain = null;
                    while (true)
                    {
                        host.NextDomain(enumHandle, out domain);
                        if (domain == null)
                        {
                            break;
                        }
                        var appDomain = (AppDomain)domain;
                        list.Add(appDomain);
                    }
                    return list;
                }
                finally
                {
                    host.CloseEnum(enumHandle);
                    System.Runtime.InteropServices.Marshal.ReleaseComObject(host);
                }
            }
        }
  • 相关阅读:
    Docker的安装、配置及其基本使用
    Java提升七:注解
    Java提升六:泛型
    Java提升五:反射与动态代理
    MySQL中如何将主键默认值设为UUID()
    图解Mybatis框架原理及使用
    Java提升四:Stream流
    Java提升三:函数式接口
    Java提升二:Lambda表达式与方法引用
    java提升一:内部类
  • 原文地址:https://www.cnblogs.com/Googler/p/4167725.html
Copyright © 2011-2022 走看看