[WPF] WPF 중복 실행 방지 하는법

안녕하세요.

 

오늘은 WPF에서 중복 실행 방지하는 방법에 대해서 알려 드리려고 합니다.

 

이 부분은 소스코드 하나만 추가하면 되는 부분이라서 예제 프로그램까지 만들지는 않고, 바로 소스 코드를 작성해 공유해 드리도록 하겠습니다.

 

아래 소스코드를 App.xaml.cs 비하인드 코드에 작성해 주시면 되겠습니다.

 

 

App.xaml.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.Windows;
 
namespace Ch06_1
{
    /// <summary>
    /// App.xaml에 대한 상호 작용 논리
    /// </summary>
    public partial class App : Application
    {
        Mutex mutex;
 
        /// <summary>
        /// 중복 실행 방지 코드
        /// </summary>
        /// <param name="e"></param>
        protected override void OnStartup(StartupEventArgs e)
        {
            base.OnStartup(e);
 
            string mutexName = "program";
            bool createNew;
 
            mutex = new Mutex(true, mutexName, out createNew);
 
            if(!createNew)
            {
                Shutdown();
            }
        }
    }
}
 
cs

 

위의 코드를 그대로 작성해서 프로그램을 실행시켜 보면, 현재 윈도우 메인 창이 하나 떠 있다고 가정하고 다시 하나를 실행 하면 창이 안 켜지는 것을 확인하실 수 있습니다.

 

만약, 위의 코드가 없으면 무한으로 실행할 때 마다 메인 윈도우가 계속 실행되는 것을 확인하실 수 있습니다.

 

감사합니다.

728x90

이 글을 공유하기

댓글

Designed by JB FACTORY