gpt4 book ai didi

C# 应用程序关闭自身的第一个实例

转载 作者:行者123 更新时间:2023-11-30 21:02:37 28 4
gpt4 key购买 nike

我知道如何确保我一次只运行一个应用程序实例: How to check if another instance of the application is running

但是...我如何确保当第二个实例启动时,第一个实例将关闭(而不是仅退出通常完成的第二个实例)。最好等待它完全关闭。

如果同时启动了 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();

最佳答案

您可以使用 WindowsFormsApplicationBase Microsoft.VisualBasic.dll 的类。

StartupNextInstance创建另一个实例时在第一个应用程序中引发事件。在这种情况下,您可以终止当前进程。

 Process.GetCurrentProcess().Kill();

这将确保新实例处于事件状态,并且之前的实例已关闭。

关于C# 应用程序关闭自身的第一个实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13347325/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com