2012-07-18 2 views
-1

방금 ​​C#으로 응용 프로그램을 만들었지 만 마음에 들지 않습니다. 응용 프로그램을 한 번만 실행하고 싶습니다. 이제 응용 프로그램이 실행 중일 때 응용 프로그램을 다시 실행하면 다른 응용 프로그램이 시작됩니다. 응용 프로그램을 다시 실행하고 다른 응용 프로그램을 만들지 않고 실행중인 응용 프로그램을 시작하려면 응용 프로그램을 한 번만 실행할 수 있도록 만들고 싶습니다.응용 프로그램을 한 번만 시작하십시오. C#

감사합니다.

+0

어때요? https://www.google.com/search?q=single%20instance%20application%20.net –

+0

또는이 하나 http://stackoverflow.com/questions/93989/prevent-multiple-instances-of-a-given -app-in-net –

답변

5

이 질문에 확인하시기 바랍니다 : Run single instance of an application using Mutex

당신은 당신이 응용 프로그램이 실행되고 있는지 확인하는 Mutex을 찾고 있습니다. 그런 다음 실행중인 응용 프로그램 Process을 찾아서 가져 오십시오.

0

당신이 언급하는 개념은 "단일 인스턴스 응용 프로그램"입니다. 이것은 대개 대기 가능한 객체로 구성되며 this article 또는 this one입니다.

1

내가 달성 한 방법은 Mutex입니다. 응용 프로그램의 각 인스턴스는 시작시 뮤텍스를 잠급니다. 성공하면 성공하기 시작합니다. 그들이 실패하면, 그들은하지 않습니다.

실행되지 않는 응용 프로그램도 실행중인 인스턴스를 복원하고 활성화합니다. 이는 WPF 또는 WinForms 응용 프로그램인지 여부에 따라 다르게 수행됩니다.

뮤텍스 접근법의 장점은 FindWindow를 사용하는 것보다 경쟁 조건이 덜 발생한다는 것입니다.

관련 문제