c#启动单个程序(互斥机制)
??? static class Program
??? {
??????? /// <summary>
??????? /// 應用程序的主入口點。
??????? /// </summary>
??????? [STAThread]
??????? static void Main()
??????? {
??????????? try
??????????? {
??????????????? bool ret;
??????????????? System.Threading.Mutex m = new System.Threading.Mutex(true, Application.ProductName, out?? ret);
??????????????? if (ret)
??????????????? {
??????????????????? Application.EnableVisualStyles();
??????????????????? Application.SetCompatibleTextRenderingDefault(false);
??????????????????? Application.Run(new FrmMain());
??????????????????? m.ReleaseMutex();
??????????????? }
??????????????? else
??????????????? {
??????????????????? MessageBox.Show(null, "有一個和本程序相同的應用程序已經在運行,請不要同時運行多個本程序。\n\n這個程序即將退出。", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Warning);
??????????????????? // 提示信息,可以刪除。
??????????????????? System.Diagnostics.Process[] killprocess = System.Diagnostics.Process.GetProcessesByName(Application.ProductName);
??????????????????? foreach (System.Diagnostics.Process p in killprocess)
??????????????????? {
??????????????????????? // if p.Id==Application.pro
??????????????????????? int id = Process.GetCurrentProcess().Id;
??????????????????????? if (id != p.Id)
??????????????????????? {
??????????????????????????? p.Kill();
??????????????????????????? p.WaitForExit();
??????????????????????? }
??????????????????? }
??????????????????? //Application.Exit();//退出程序??
??????????????????? Application.EnableVisualStyles();
??????????????????? Application.SetCompatibleTextRenderingDefault(false);
??????????????????? Application.Run(new FrmMain());
??????????????????? m.ReleaseMutex();
??????????????? }
??????????? }
??????????? catch (Exception exp)
??????????? {
??????????????? MessageBox.Show("程序出現異常,即將關閉,請重新運行"+exp.ToString());
??????????????? System.Environment.Exit(0);
??????????? }
??????? }//main
??? }
轉載于:https://www.cnblogs.com/kevinzhwl/archive/2010/06/12/1756912.html
總結
以上是生活随笔為你收集整理的c#启动单个程序(互斥机制)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET MVC 的安装过程详解
- 下一篇: 通过 ViewState 保存 Self