c#启动单个程序(互斥机制)
??? static class Program
??? {
??????? /// <summary>
??????? /// 應(yīng)用程序的主入口點(diǎn)。
??????? /// </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, "有一個(gè)和本程序相同的應(yīng)用程序已經(jīng)在運(yùn)行,請不要同時(shí)運(yùn)行多個(gè)本程序。\n\n這個(gè)程序即將退出。", 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("程序出現(xiàn)異常,即將關(guān)閉,請重新運(yùn)行"+exp.ToString());
??????????????? System.Environment.Exit(0);
??????????? }
??????? }//main
??? }
轉(zhuǎn)載于:https://www.cnblogs.com/kevinzhwl/archive/2010/06/12/1756912.html
總結(jié)
以上是生活随笔為你收集整理的c#启动单个程序(互斥机制)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ASP.NET MVC 的安装过程详解
- 下一篇: 通过 ViewState 保存 Self