二重起動の防止


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

WPFでMutexを使用した二重起動の防止

二重起動のチェック方法にはMutexを使用するのが通説です。
WPFではApp.csにアプリケーションのエントリポイントがあるので、そこでMutexをチェックすれば二重起動のチェックができます。

public partial class App : Application {
	literal string APP_MUTEX_KEY = "MyApplication";
 
	private static System.Threading.Mutex mutex;
 
	public App() : base() {
		Startup += new StartupEventHandler(Application_Start);
		Exit += new ExitEventHandler(Application_Exit);
	}
 
	private void Application_Start(object sender, StartupEventArgs e) {
		mutex = new System.Threading.Mutex(false, APP_MUTEX_KEY);
 
		// 二重起動をチェック
		if( (!mutex.WaitOne(0,false)) {
			// すでに起動済み
			// エラーメッセージなどを出力
 
			// Mutexを破棄
			mutex.Close();
			mutex = null;
 
			this.Shutdown(); // アプリケーションを終了
		}
	}
 
	private void Application_Exit(object sender, ExitEventArgs e) {
		if( mutex != null ) {
			// Mutexを解放
			mutex.ReleaseMutex();
 
			// Mutexを破棄
			mutex.Close();
		}
	}
}

読んでいる本


Effective C#

QLOOKアクセス解析

ここを編集