C# 解决程序多次同时打开

  1. 使用互斥量 Mutex (命名空间:System.Threading)
  • 互斥锁是同步对象,同一时间有且仅有一个线程可以获取它。
  • 互斥锁可以适用于一个共享资源每次只能被一个线程访问。
  1.   相关的函数
    1. 创建一个处于未获取状态的互斥锁
    • Public Mutex() 
      static class Program
          {
              /// <summary>
              /// 应用程序的主入口点。
              /// </summary>
              [STAThread]
              static void Main()
              {
                  //判断当前程序是否已经开启
                  bool falg = false;
                  System.Threading.Mutex mutex = new System.Threading.Mutex(true, "Demo1",out falg);
                  if (falg)  //程序未开启
                  {
                      Application.EnableVisualStyles();
                      Application.SetCompatibleTextRenderingDefault(false);
                      Application.Run(new HL_login());
                  }
                  else  //程序已经开启
                  {
                      Model.PubDev.ShowMessage("程序已经打开!");
                      System.Threading.Thread.Sleep(3000);
                      Environment.Exit(1); //退出当前程序
                  }
      
              }
          }    

       

posted @ 2019-11-26 10:16  爱心觉罗云高  阅读(335)  评论(0)    收藏  举报