zoukankan      html  css  js  c++  java
  • AppDomain对于静态对象的独享引用

    AppDomain可以理解为一个独立的沙箱,当有独立的第静态对象在appDomain中被访问时,会在appDomain中产生独立的内存对象。比如appDomain1 appDomain2同时对 静态对象A有引用时,appDomain1.A与appDomain2.A是两个对象。

     1.

    静态对象属性

    public class StaticModel
    {
    public static int IndexTest;
    }

    2. 

    public class myClass
    {
    public int index;
    public void Invoke()
    {
        using (TestProctectedCodeInvoke tc = new TestProctectedCodeInvoke())
        {
             LogHelper.Log("index:" + index + "----------Invoke thread .id:" + Thread.CurrentThread.ManagedThreadId, "ddd", 111);
             string saa = tc.test();
             Console.WriteLine(saa);
        }
    }
    }
    public static void Main(string[] args)
            {
    
                LogHelper.Log("Main start", "ffffffffff", 111);
                int i = 0;
                try
                {
                    while (i < 11)
                    {
                        i++;
                        myClass mc = new myClass();
                        mc.index = i;
                        LogHelper.Log("Main thread index:  【" + i + "", "ffffffffff", 111);
                        Thread t = new Thread(mc.Invoke);
                        t.Start();
                        Thread.Sleep(100);
                        Console.WriteLine(i);
                    }
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.ToString());
                }
                LogHelper.Log("Main end", "ffffffffff", 111);
                Console.ReadLine();
            }
    class TestProctectedCodeInvoke: IDisposable
        {
            public string test()
            {
                string dllpath = System.IO.Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory + "ClassLibrary1.dll");
                AssemblyDomain ad = new AssemblyDomain();
                object s = ad.Invoke(dllpath, "ClassLibrary1.Class1", "GetName");
                return s.ToString();
            }
    
            public void Dispose()
            {
                Console.WriteLine("Dispose");
            }
            ~TestProctectedCodeInvoke()
            {
                Console.WriteLine("TestProctectedCodeInvoke .xigou");
            }
        }

    3. 输出结果



    证明 StaticModel.IndexTest 是在各个domain中是独立的存在
  • 相关阅读:
    比较全的笔记
    ios路线
    字符串颜色
    ios 开发学习步骤
    百度地图反地理
    p12证书
    ios官方demo
    ios视频网盘
    图片穿透
    OC温习一:基本数据类型
  • 原文地址:https://www.cnblogs.com/kedach/p/6227025.html
Copyright © 2011-2022 走看看