싱글 톤을 통해 액세스 할 공유 개체를 사용하여 응용 프로그램에서 작업하고 있습니다. 32 비트에서는 잘 작동하지만 64 비트에서는 제대로 잠그지 않는 것 같습니다. 내 개체에 대한 생성자에서 몇 가지 구성 reg 키를 확인하고 존재하지 않는 경우 사용자에게 묻는 코드가 있습니다. 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);
}
편집을이 사무실 추가 기능의 내부 실행 :
샘플 사용을 포함하는을 편집. 따라서 비트는 사무실 설치에 의해 결정됩니다. private 인 매개 변수없는 생성자를 정의합니다.
감사
제거 약간 Anonimized 생성자
매개 변수없는 생성자가 '비공개'로 표시 되었습니까? 싱글 톤의 인스턴스를 사용하기 위해 사용중인 코드 스 니펫을 표시하십시오. – jason
게시물에 스 니펫을 추가했습니다. 공정한 양의 다른 장소에서이 객체에 액세스하지만 각 인스턴스마다 액세스를 위해 MyObject.Instance를 사용하고 있습니다. –
이 작업은 VS 내에서만 발생합니까? Monitor oddities와 관련된 첫 번째 작업은 해당 클래스 (인스턴스)에 대한 모든 참조를 조사 및 디버그 창에서 제거하는 것입니다. VS는 때때로 자신의 방식대로 일을하고 싶어하며 잠금 장치도 우회합니다. ... – MaLio