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


      实现单实例应用程序的方法比较多,我列举一些常用的方法:
         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

  • 相关阅读:
    Resharper的使用
    SQL Server 占用CPU较高的解决方法
    014 FPGA千兆网UDP通信
    012 PCIe总线的基础知识
    008 PCI设备BAR空间的初始化
    016 基于FPGA的网口通信实例设计【转载】
    015 FPGA千兆网TCP通信【转载】
    006 PCI总线的桥与配置(一)
    004 PCI Express体系结构(四)
    007 PCI总线的桥与配置(二)
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/1760809.html
Copyright © 2020-2023  润新知