C#重新启动时,关闭较早的进程

时间:2023-03-10 02:16:53
C#重新启动时,关闭较早的进程

WPF程序重新启动,如果有客户端进程存在,则关闭较早的进程

      private static System.Threading.Mutex mutex;
public App()
{
this.Startup += new StartupEventHandler(App_Startup);
}
/// <summary>
/// 登陆前判断是否存在客户端进程
/// </summary>
void App_Startup(object sender, StartupEventArgs e)
{
bool ret;
mutex = new System.Threading.Mutex(true, "TCClient", out ret);
Logger.D("打印有没有重复进程:",(!ret).ToString());
if (!ret)
{
Process process = Process.GetCurrentProcess();//后运行的程序
foreach (Process p in Process.GetProcessesByName("TCClient"))
{
//不是同一进程并且本进程启动时间最晚,则关闭较早进程
if (p.Id != process.Id && (p.StartTime - process.StartTime).TotalMilliseconds <= )
{
p.Kill();
//Application.Current.Shutdown(-1);
Thread.Sleep();
return;
}
} //MessageBox.Show("已存在一个本客户端进程在运行,请手动关闭后再重新启动", "系统提示", MessageBoxButton.OK);
//Environment.Exit(0);
} }