zoukankan      html  css  js  c++  java
  • 使用Mutex实现单程序实例

    单程序实例叫起来有点拗口哦,意思也就是在同一计算机,同一时间段,只允许该程序实例化一次,也就是进程管理器里只有一个该程序的进程。

    Mutex应该是用来线程间互斥的。看到很多程序都是用它来实现单程序实例 的,也有通过process来实现(好像是根据进程名来判断)

    如果要多用户情况下实现单例,在name前加上@ “Global\”

    先来看代码吧:

     1 namespace 单程序实例
    2 {
    3 static class Program
    4 {
    5 ///<summary>
    6      /// 应用程序的主入口点。
    7      ///</summary>
    8 [STAThread]
    9 static void Main()
    10 {
    11 Application.EnableVisualStyles();
    12 Application.SetCompatibleTextRenderingDefault(false);
    13
    14 Mutex mutex;
    15 string name = "test1";
    16 try
    17 {
    18 mutex = new Mutex(false, name);
    19 }
    20 catch (Exception exception)
    21 {
    22 MessageBox.Show("程序已经启动(mutex fail).\n\n" +exception.Message);
    23 return;
    24 }
    25 using (mutex)
    26 {
    27 if (!mutex.WaitOne(40, false))
    28 {
                  MessageBox.Show("程序已经启动(mutex fail).\n\n" +exception.Message);
    29                     return;
    30 }
    31 Application.Run(new Form1());
    32 }
    33 }
    34 }
    35 }



  • 相关阅读:
    Android开发日记(三)
    Android开发日记(二)
    Bundle savedInstanceState的作用
    Android Bundle类
    Consumer
    饭卡
    《CLR via C#》读书笔记 之 泛型
    WCF寄宿到Windows Service
    WCF中配置文件解析
    WCF Service Configuration Editor的使用
  • 原文地址:https://www.cnblogs.com/yczz/p/2268453.html
Copyright © 2011-2022 走看看