C# 控制台,保持一个运行
public static Process RunningInstance() { Process current = Process.GetCurrentProcess(); Process[] processes = Process.GetProcessesByName(current.ProcessName); foreach (Process process in processes) { if (process.Id != current.Id) { string name = process.MainModule.FileName; if (name == current.MainModule.FileName) { return process; } } } return null; }
try { Process instance = JustOneProcess.RunningInstance(); if (instance == null) { #region //运行的程序 switch (ConfigurationManager.AppSettings["Action"].ToString()) { case "": break; } #endregion System.Environment.Exit(0); } else { System.Environment.Exit(0); } } catch (Exception ex) { //报错立即关闭,防止下次运行不了 Logs.WriteLogs("Error", $"全局报错:{ex.Message}"); System.Environment.Exit(0); }