zoukankan      html  css  js  c++  java
  • 实现单实例应用程序的三种方案

         实现单实例应用程序的方法比较多,我列举一些常用的方法:
         1,使用互斥体:
      static   void   Main()    
      {  
                bool   isOnlyOne;  
                System.Threading.Mutex   mtx   =   new   System.Threading.Mutex  
                                                                      (false,   "OnlyOne",   out   isOnlyOne);  
                if   (isOnlyOne)  
                {  
                            Application.Run(new   Form1());  
                }

                 else
                 {
                            MessageBox.Show("当前已经运行本应用程序了,无须再次运行!  
      }

         2,使用Process类来检测是否已经存在本应用程序的进程:
       static   void   Main()    
      {  
                bool   isOnlyOne;  
                foreach(process p in Process.GetProcesses())
                {
                           if(p.ProcessName="xxx")
                                 isOnleOne=false;
                 }
                if   (isOnlyOne)  
                {  
                            Application.Run(new   Form1());  
                }

                 else
                 {
                            MessageBox.Show("当前已经运行本应用程序了,无须再次运行!  
      }
    这种方式会导致程序启动缓慢,一般不推荐使用
          3,继承WindowsFormsApplicationBase实现单实例管理器,已经有人写过这个主题了,我就不重复了,具体可以参考:
    http://hi.baidu.com/hetaoos/blog/item/2abda7185ab63a0334fa415f.html
  • 相关阅读:
    【Cocos2dx 3.3 Lua】触屏事件
    (转载)【cocos2dx 3.x Lua] 注册事件函数详解
    【Cocos2dx 3.x Lua】CCParallaxNode使用
    TileMap地图
    linux rdate
    sqlmap 技巧整理
    linux ckconfig
    ubuntu remove mysql
    aliyun ubuntu mysql
    解决mysql“Access denied for user 'root'@'localhost'”
  • 原文地址:https://www.cnblogs.com/xuefeng1982/p/1832866.html
Copyright © 2011-2022 走看看