1. ホーム
  2. c#

[解決済み] .NETで特定のアプリの複数インスタンスを防ぐには?

2022-06-09 02:02:44

質問

.NET において、アプリの複数のインスタンスが同時に実行されないようにする最良の方法は何ですか? また、最良の手法がない場合、それぞれのソリューションで考慮すべき注意点は何でしょうか?

どのように解決するのですか?

Mutexを使用する。GetProcessByName を使用した上記の例の 1 つは、多くの注意点があります。この件に関する良い記事があります。

http://odetocode.com/Blogs/scott/archive/2004/08/20/401.aspx

[STAThread]
static void Main() 
{
   using(Mutex mutex = new Mutex(false, "Global\\" + appGuid))
   {
      if(!mutex.WaitOne(0, false))
      {
         MessageBox.Show("Instance already running");
         return;
      }

      Application.Run(new Form1());
   }
}

private static string appGuid = "c0a76b5a-12ab-45c5-b9d9-d693faa6e7b9";