プログラマ
マネージャさん。アプリケーションが2重で立ち上がって誤動作してしまいます。同じアプリケーションを立ち上げたときの処理について教えてください。
マネージャ
はい。この記事では、アプリケーションが2重で立ち上がらないような処理についてお話したいと思います。
C#でアプリケーションの二重起動をさせないコードについてお話します。常駐ソフトなどでは、アプリケーションを二つ以上起動させたくない場合があります。ミューテックスを利用することで多重起動を抑止できます。C#の Windows フォームアプリケーションでは、Progarm.csファイルのMain()関数内にミューテックスの処理を記述することで実現できます。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Threading;
namespace SingleApplicationExecute
{
static class Program
{
/// <summary>
/// アプリケーションのメイン エントリ ポイントです。
/// </summary>
[STAThread]
static void Main()
{
//ミューテックス作成
Mutex app_mutex = new Mutex(false, ”MYSOFTWARE_001”);
//ミューテックスの所有権を要求する
if (app_mutex.WaitOne(0, false) == false) {
MessageBox.Show(”このアプリケーションは複数起動できません。”);
return;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FormMain());
}
}
}