Windows Form

Windows Form アプリケーションで、複数のフォームが持つケースが多いいです。実装方法が不適切だったら、起動した別フォームから、多重起動ができてしまう可能性があります。この方法では、Mutex に識別名をつけて判断しております。よって、実行ファイル名を変更しても確実に二重起動を防ぐことができます。

[System.STAThread()]
private static void Main() {
    // Mutex の新しいインスタンスを生成する (Mutex の名前にアセンブリ名を付ける)
    System.Threading.Mutex hMutex = new System.Threading.Mutex(false, Application.ProductName);

    // Mutex のシグナルを受信できるかどうか判断する
    if (hMutex.WaitOne(0, false)) {
        Application.Run(new Form1());
    }

    // GC.KeepAlive メソッドが呼び出されるまで、ガベージ コレクション対象から除外される
    // 複数画面での遷移があるアプリケーションでは、必ず下記のようにインスタンスを維持すべき
    GC.KeepAlive(hMutex);

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


フレッツ光が月額556円~【GMOとくとくBB】

コメント:



(画像の文字列を入力して下さい)

トップ   編集 凍結 差分 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2019/12/02 (月) 12:44:29 (1628d)

yVoC[UNLIMITȂ1~] ECirŃ|C Yahoo yV LINEf[^[Ōz500~`I


z[y[W ̃NWbgJ[h COiq 萔O~ył񂫁z COsیI COze