Windows 환경에서 사용되는 코드입니다.

WIN API 기반으로 이름(2번째 인자)에 해당하는 Named Mutex 를 통해 내부적 처리를 한다고 합니다.

 

using System;
using System.Threading;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    static class Program
    {
        /// <summary>
        /// 해당 애플리케이션의 주 진입점입니다.
        /// </summary>
        [STAThread]
        static void Main()
        {
            bool isRunning;
            Mutex mutex = new Mutex(true, "UniqueMutexName", out isRunning); //뮤택스 확인

            if (!isRunning) //이미 해당이름으로 Mutex가 걸려있으면 false 없다면 true
            {
                return;
            }
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());


            mutex.ReleaseMutex();  // 해제
        }
    }
}

+ Recent posts