zoukankan      html  css  js  c++  java
  • C# Sandboxer

     public static string IsolateCallV1(PageContentHandler pHandler)
            {
                string name = Guid.NewGuid().ToString("N");
                var domain = AppDomain.CreateDomain(name);
                try
                {
                    var proxy = (IAppEntry)domain.CreateInstanceAndUnwrap("AnfleCrawler.Common", "AnfleCrawler.Common.IsolateProxy");
                    string ret = (string)proxy.DoEntry(pHandler);
                    if (ret == null)
                    {
                        throw new InvalidOperationException("IsolateProxy");
                    }
                    return ret;
                }
                finally
                {
                    //AppDomain不能即时卸载?不能在IDisposable中卸载?
    
                    //App.LogInfo("IsolateCollect Unload {0}@{1}", domain.FriendlyName, AppDomain.CurrentDomain.FriendlyName);
                    //AppDomain.Unload(domain);
                    new JobTimer(state =>
                    {
                        try
                        {
                            var d = (AppDomain)state;
                            //if (d.IsFinalizingForUnload())
                            //{
                            //    return;
                            //}
                            App.LogInfo("IsolateCollect Unload {0}", d.FriendlyName);
                            AppDomain.Unload(d);
                        }
                        catch (Exception ex)
                        {
                            App.LogError(ex, "IsolateCollect");
                        }
                    }, DateTime.Now.AddSeconds(20d)).Start(domain);
                }
            }
  • 相关阅读:
    33. 搜索旋转排序数组
    54. 螺旋矩阵
    46. 全排列
    120. 三角形最小路径和
    338. 比特位计数
    746. 使用最小花费爬楼梯
    spring boot的一些常用注解
    SSM整合Dubbo案例
    一些面试题
    Spring Aop和Spring Ioc(二)
  • 原文地址:https://www.cnblogs.com/Googler/p/3753437.html
Copyright © 2011-2022 走看看