我知道如何确保一次只运行一个应用程序实例: 如何检查应用程序的另一个实例是否正在运行
但是......我怎样才能确保当第二个实例启动时,第一个实例将被关闭(而不是仅仅退出通常完成的第二个实例)。最好等待它完全关闭。
如果同时启动了 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();