Я работаю над приложением с общим объектом, доступ к которому осуществляется через одноэлементный файл. Он работает нормально на 32-битной, но на 64-битной не выглядит должным образом блокировки. В конструкторе для моего объекта у меня есть код, который проверяет некоторые конфигурационные ключи reg и запрашивает пользователя, если они не существуют. В 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. Таким образом, битность определяется установкой офиса. Я определяю конструктор без параметров, который является частным.
Спасибо
Удален слегка анонимизированный конструктор