C#编程中设置程序只可被运行一次的方法

2019-12-26 14:16:11于海丽

实现程序自重启

程序运行过程中,不能有多个实例运行,并且需要程序自己可以重启(重新运行),所以代码如果下代码:

 

 
  1. static void Main()   {  
  2. bool createNew;   using (System.Threading.Mutex m = new System.Threading.Mutex(true, Application.ProductName, out createNew))  
  3. {   if (createNew)  
  4. {   Application.EnableVisualStyles();  
  5. Application.SetCompatibleTextRenderingDefault(false);   Application.Run(new Form1());  
  6. }   else 
  7. {   MessageBox.Show("Only one instance of this application is allowed!");  
  8. }   }  
  9. }  Boolean createdNew; //返回是否赋予了使用线程的互斥体初始所属权 
  10. System.Threading.Mutex instance = new System.Threading.Mutex(true, "MutexName", out createdNew); //同步基元变量  if (createdNew) //赋予了线程初始所属权,也就是首次使用互斥体 
  11. {  Application.Run(new Form1()); /s/这句是系统自动写的 
  12. instance.ReleaseMutex();  } 
  13. else  { 
  14. MessageBox.Show("已经启动了一个程序,请先退出!","系统提示",MessageBoxButtons.OK,MessageBoxIcon.Error);  Application.Exit(); 

用以上代码实现了禁止多重启动的功能。

同时程序关闭重启是通过下面的代码实现的: