VB.NET二重起動を確実に禁止する

スポンサーリンク

二重起動 (多重起動) を防止するのには、いくつかの方法が考えられます。ここで紹介する方法は、Mutex を使用する方法です。

この方法では、Mutex に識別名をつけて判断しております。よって、実行ファイル名を変更しても確実に二重起動を防ぐことができます。

サンプルコード

以下にサンプルコードを示します。

VB.NET 全般
<System.STAThread()> _
Protected Shared Sub Main()
    ' Mutex の新しいインスタンスを生成する (Mutex の名前にアセンブリ名を付ける)
    Dim hMutex As New System.Threading.Mutex(False, Application.ProductName)

    ' Mutex のシグナルを受信できるかどうか判断する
    If hMutex.WaitOne(0, False) Then
        Application.Run(New Form1())
    End If

    ' GC.KeepAlive メソッドが呼び出されるまで、ガベージ コレクション対象から除外される
    GC.KeepAlive(hMutex)

    ' Mutex を閉じる (正しくは オブジェクトの破棄を保証する を参照)
    hMutex.Close()
End Sub

関連するリファレンス

準備中です。

スポンサーリンク