gpt4 book ai didi

c# - 单例实现在 32 位但不是 64 位上工作正常

转载 作者:太空宇宙 更新时间:2023-11-03 11:50:44 25 4
gpt4 key购买 nike

我正在开发一个具有共享对象的应用程序,该对象可通过单例访问。它在 32 位上工作正常,但在 64 位上它似乎没有正确锁定。在我的对象的构造函数中,我有代码检查一些配置注册键并在它们不存在时提示用户。在 32 位上,我按预期只看到一次提示,但在 64 位上,提示显示了多次。我的代码如下:

    private static readonly object padlock = new object();
private static MyClass _instance = null;
public static MyClass Instance
{
get
{

lock (padlock)
{
if (_instance == null)
{
_instance = new MyClass();
}
}
return _instance;
}
}

非常感谢任何输入。

编辑以包含示例用法:

    public OtherObject()
{
InitializeComponent();

MyClass.Instance.OtherObjectOrSomething = this;

this.Load += new System.EventHandler<EventArgs>(OtherObject_Load);
}

再次编辑这是在 Office 加载项中运行的。因此,位数由办公室的安装决定。我定义了一个私有(private)的无参数构造函数。

谢谢

移除了略微匿名的构造函数

最佳答案

它可能是构造函数中代码的内部原因,导致出现多个提示。注册表的 View 将不同于 32 位进程和 64 位进程,因此它们可以响应不同的外部条件

关于c# - 单例实现在 32 位但不是 64 位上工作正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2187090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com