VB .NET 프로그램 중복 실행 방지 하기

VNote 2013.12.06 12:21:47

중복 실행을 방지 해야 하는 프로그램의 경우

전역변수 선언부분, 프로그램 시작부분, 프로그램 종료부분에 아래와 같은 코드를 넣어주시면 됩니다.

 


전역변수 위치


    Dim bCreated As Boolean
    Dim mtx As New System.Threading.Mutex(True, "MyMutex", bCreated) 'MyMutex 라는 이름으로 뮤텍스 생성

 

 

프로그램 시작 위치 (ex. Form_Load)


    If Not bCreated Then '뮤텍스가 정상적으로 생성되지 않았으면 같은 이름의 뮤텍스가 있는것으로 판단
        MessageBox.Show("Program already started!!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        Application.ExitThread()
    End If

 

 

프로그램 종료 위치 (ex. Form_Closing)


    mtx.ReleaseMutex()

 

 

내용을 보시면 알겠지만,
중요한것은..

어플리케이션이 실행될때.. 뮤텍스를 생성하고

정상적으로 생성이 되었으면..
최초의 실행이라고 가정하고,

정상적으로 생성되지 못했으면
최초의 실행이 아니라고 가정합니다.

그리고 프로그램 종료 시점에 뮤텍스를 릴리즈 해주면 됩니다.