• 实现单实例应用程序的三种方案


         实现单实例应用程序的方法比较多,我列举一些常用的方法:
         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
  • 相关阅读:
    scikitlearn中predict_proba用法 (与predict的区别)
    Sklearn,TensorFlow,keras模型保存与读取
    TensorFlow GPU 的使用
    Keras2.2 predict和fit_generator的区别
    wordcloud词云可视化
    使用scp命令,远程上传下载文件/文件夹
    L0/L1/L2范数的联系与区别
    Python中的正斜杠/与反斜杠\
    在Keras中使用tensorboard可视化acc等曲线
    Linux终端没有GUI,使用matplotlib绘图
  • 原文地址:https://www.cnblogs.com/xuefeng1982/p/1760720.html
Copyright © 2020-2023  润新知