728x90
반응형
LIST

단일 인스턴스 응용프로그램을 개발하고자 한다면 이미 실행 중인 인스턴스를 감지한 후 이후에 실행되는 인스턴스들을 종료하는 방법으로 쉽게 개발이 가능하다.

 

우리는 흔히 응용 프로그램의 다중 인스턴스 지원으로 인해 EXE 파일을 여러번 실행하게 되면 아래와 같이 실행 되는 것을 볼 수 있다.

 

 

 

 

 

이러한 다중 인스턴스를 방지하기 위해 단일 인스턴스 또한 존재한다.

핵심은 Windows 운영체제의 뮤텍스(mutex) 객체에 세션 내에서 유일한 이름을 붙여 액세스하는 것이다. 뮤텍스 객체는 일단 생성되면 프로세스의 수명 주기를 위해 존재하는 WPF의 Application 객체 자체의 수명 주기를 위해 존재하게 된다. 그러므로 우리가 처음으로 뮤텍스를 생성하는 것이 아니라면 응용 프로그램을 종료하여 프로세스로부터 빠져나와야 한다.

 

그러나 현 시점에서 울가 알아야 할 것은 단일 인스턴스를 감지하는것이 우리에게 필요한 유일한 기능이 아니라는 점이다. 즉, 우리는 다음과 같은 사항들이 필요하다.

  - 최초 인스턴스에 명령 줄 인수를 전달한다.

  - 최초 인스턴스의 주 윈도우를 활성화한다.

  - 하나의 컴퓨터에 로그인한 여러 사용자 계정을 응용 프로그램의 인스턴스에 적절히 배분한다.

 

 

[ Mutex 적용 ]

 

 

 

 

 

728x90
반응형
LIST

'IT개발/정보 > WPF' 카테고리의 다른 글

[ 레이아웃(Layout) ] StackPanel  (0) 2021.12.23
레이아웃(Layout) 기초  (0) 2021.12.23
[STAThread] 란?  (0) 2021.12.23
XAML에서 Window 선언하기  (0) 2021.12.23
외관과 행동의 역할을 하는 프로그램  (0) 2021.12.23

+ Recent posts