首页 > 代码库 > .net 获取AppDomain创建了多少

.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);            }        }    }

 

.net 获取AppDomain创建了多少