C#重新启动时,关闭较早的进程
2017-06-15 10:27
204 查看
WPF程序重新启动,如果有客户端进程存在,则关闭较早的进程
1 private static System.Threading.Mutex mutex; 2 public App() 3 { 4 this.Startup += new StartupEventHandler(App_Startup); 5 } 6 /// <summary> 7 /// 登陆前判断是否存在客户端进程 8 /// </summary> 9 void App_Startup(object sender, StartupEventArgs e) 10 { 11 bool ret; 12 mutex = new System.Threading.Mutex(true, "TCClient", out ret); 13 Logger.D("打印有没有重复进程:",(!ret).ToString()); 14 if (!ret) 15 { 16 Process process = Process.GetCurrentProcess();//后运行的程序 17 foreach (Process p in Process.GetProcessesByName("TCClient")) 18 { 19 //不是同一进程并且本进程启动时间最晚,则关闭较早进程 20 if (p.Id != process.Id && (p.StartTime - process.StartTime).TotalMilliseconds <= 0) 21 { 22 p.Kill(); 23 //Application.Current.Shutdown(-1); 24 Thread.Sleep(500); 25 return; 26 } 27 } 28 29 //MessageBox.Show("已存在一个本客户端进程在运行,请手动关闭后再重新启动", "系统提示", MessageBoxButton.OK); 30 //Environment.Exit(0); 31 } 32 33 }
相关文章推荐
- c#启动关闭进程
- C#导出Excel后关闭进程(EXCEL.EXE)释放资源的解决方案
- C#导出Excel后关闭进程(EXCEL.EXE)释放资源的解决方案
- c# 关闭进程
- c# 关闭进程
- c# 进程获取与关闭操作
- C# 关闭进程的时候总是捕捉到System.Threading.ThreadAbortException: 正在中止线程
- c# 做的登录窗体,登录成功后当前登录Form关闭,打开Main窗体,但Main窗体点关闭按钮后程序仍在进程怎么办
- C# 根据进程名关闭进程方法
- c# 做的登录窗体,登录成功后当前登录Form关闭,打开Main窗体,但Main窗体点关闭按钮后程序仍在进程怎么办
- C# 强制关闭当前程序进程(完全Kill掉不留痕迹)
- C#用Com组件解析Excel文件 然后删除Excel 并且彻底关闭Excel进程(公司实战项目经验)
- c# 通过进程名关闭指定窗口(或进程)
- C#关闭后台进程
- C# 强制关闭当前程序进程(完全Kill掉不留痕迹)
- C#操作完EXCEL如何砌底关闭进程
- C#导出Excel后关闭进程(EXCEL.EXE)释放资源的解决方案
- C# 关闭窗体立即停止进程
- C# 如何关闭,释放Excel进程
- C#导出Excel后关闭进程(EXCEL.EXE)释放资源的解决方案