이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 24385|회답: 4

[출처] C# 프로그램은 올바른 코드를 실행하는 인스턴스가 하나만 허용합니다

[링크 복사]
게시됨 2016. 12. 10. 오후 2:55:50 | | | |


컴퓨터가 한 번만 실행되도록 하는 교통 모니터링 소프트웨어를 작성했으며, 코드는 다음과 같습니다:



즉시 찾아서 소프트웨어를 클릭하면 "인스턴스가 실행되었습니다"라는 메시지가 뜨지만,30초 정도 기다린 후 소프트웨어를 클릭하면 다시 정상적으로 실행됩니다한 번!!

안타깝네요.위 코드는 DEBUG 모드에서는 괜찮지만, RELEASE 모드에서는 작동하지 않습니다.
문제는 Mutex가 로컬 변수로 선언되어 있고, 최적화 문제로 인해 relese 모드로 지정되어 있다는 점인데, 이는 컴파일러가 Mutex가 더 이상 사용되지 않는다고 인식하기 때문일 수 있습니다

사용되고, 재활용되고, 직접 테스트했어요,

Mutex를 위에 올리고 정적 변수로 설정하세요!!오른쪽코드는 다음과 같습니다:





점수

참가자 수1MB+1 기여하다+1 무너지다 이유
배우는 것을 좋아하는 작은 초보자 + 1 + 1 정말 한 명이야!

모든 평점 보기





이전의:C#은 애플리케이션 인스턴스 중 하나만 올바르게 작성할 수 있게 합니다
다음:소프트웨어 부팅 자동 설정 방법.
 집주인| 게시됨 2016. 12. 10. 오후 3:02:58 |
정적 필드는 GC에 의해 재활용되지 않으며, 정적 필드는 Loader 힙에 할당되며, 비GC 힙은 GC에서 제어되지 않습니다.

정적 멤버(정적 클래스 여부와 상관없이)는 AppDomain.Unload에 도달할 때만 재활용됩니다. 정적 클래스는 정적 멤버만 가질 수 있습니다
게시됨 2017. 12. 6. 오전 11:48:05 |
배웠습니다, 공유해 주셔서 감사합니다
 집주인| 게시됨 2018. 2. 23. 오후 2:59:01 |
기타 구현 방식:

시작 방법:



 집주인| 게시됨 2025. 10. 3. 오후 4:10:11 |
.NET/C#은 Mutex와 MemoryMappedFile 기반의 프로그램 싱글턴을 구현합니다
https://www.itsvse.com/thread-10808-1-1.html
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com