一度にアプリケーションのインスタンスを 1 つだけ実行する方法を知っています: アプリケーションの別のインスタンスが実行されているかどうかを確認する方法
しかし...どうすれば、2番目のインスタンスが開始されたときに、最初のインスタンスが閉じられることを確認できますか(通常行われる2番目のインスタンスを終了するのではなく)。そして、できれば完全に閉じるのを待ってください。
2 つ以上のインスタンスが同時に開始された場合、最後のインスタンスのみが「ライブ」を許可されます。
わかりました(すべての回答に感謝します)。以下の私の解決策:
#region Kill other running processes of this application
List<Process> processes = Process.GetProcessesByName(Process.GetCurrentProcess().ProcessName).ToList();
if (processes.Count > 1)
{
processes.Sort((x, y) => DateTime.Compare(x.StartTime, y.StartTime));
for (int i = 0; i < processes.Count - 1; i++)
{
processes[i].CloseMainWindow();
processes[i].WaitForExit();
}
}
#endregion
Console.WriteLine(string.Format("{0}:{1}", DateTime.Now.Minute, DateTime.Now.Second));
Console.ReadLine();