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

≡放荡痞女 提交于 2019-12-05 16:36:54
  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); //退出当前程序
                  }
      
              }
          }    

       

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!