Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/multithreading/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 单身人士及;多执行绪_C#_Multithreading_Singleton - Fatal编程技术网

C# 单身人士及;多执行绪

C# 单身人士及;多执行绪,c#,multithreading,singleton,C#,Multithreading,Singleton,问:当来自两个不同应用程序域的两个线程访问该类时,单个实例会被破坏吗 我做了一些研究,发现以下几点是相关的 每个应用程序域的(.NET)单例是唯一的-至少,常见的单例模式是。我想您可以实现每个进程的单例,但我还没有考虑它到底是如何工作的 你的单身汉会有两个例子 方法的输入参数(参数)在堆栈上。每个线程都有一个单独的堆栈。当运行线程切换时,堆栈被替换 专家建议 当来自两个不同应用程序域的两个线程访问该类时,单个实例会被破坏吗 对。甚至可以从同一个应用程序域中进行。考虑这个简单的单体实现: priv

问:当来自两个不同应用程序域的两个线程访问该类时,单个实例会被破坏吗

我做了一些研究,发现以下几点是相关的

  • 每个应用程序域的(.NET)单例是唯一的-至少,常见的单例模式是。我想您可以实现每个进程的单例,但我还没有考虑它到底是如何工作的

  • 你的单身汉会有两个例子

  • 方法的输入参数(参数)在堆栈上。每个线程都有一个单独的堆栈。当运行线程切换时,堆栈被替换

  • 专家建议

    当来自两个不同应用程序域的两个线程访问该类时,单个实例会被破坏吗

    对。甚至可以从同一个应用程序域中进行。考虑这个简单的单体实现:

    private static Singleton instance;
    public static Singleton Instance
    {
        if (instance == null)
        {
            instance = new Singleton();
        }
    
        return instance;
    }
    
    两个线程可能同时输入属性。在这两种情况下,
    instance==null
    均为true,并创建一个新实例。一个方法已经返回创建的实例,另一个方法重置
    实例
    ,稍后返回该实例。单身汉破产了

    还有很多要读