본문 바로가기

C#

단일 프로세스 실행

728x90

실행파일을 여러 번 실행하면 여러 개의 다른 프로세스들이 생성되는데, 만약 해당 머신에서 오직 한 프로세스만 실행되도록 하길 원한다면, 일반적으로 사용되는 한 방법으로 Mutex를 사용할 수 있다.

static class Program
{
	[STAThread]
	static void Main()
	{
		try
		{
			using (new Mutex(true, Application.ProductName, out var isNew))
			{
				if (isNew)
				{
					try
					{
						Application.EnableVisualStyles();
						Application.SetCompatibleTextRenderingDefault(false);
						Application.Run(new FrmMain());
					}
					catch (Exception ex) {}
				}
				else
				{
					MsgBox.Inform(Messages.RunningProgram);
					Application.Exit();
				}
			}
		}
		catch (Exception e) {}
		finally
		{
        		// 프로그램 종료
		}
	}
}

또 다른 예제는 여기

728x90