欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

使用mutex實(shí)現(xiàn)應(yīng)用程序單實(shí)例運(yùn)行代碼分享

 更新時(shí)間:2014年01月06日 10:29:51   作者:  
本文主要介紹了使用Mutex實(shí)現(xiàn)應(yīng)用程序單實(shí)例運(yùn)行的方法,實(shí)現(xiàn)原理是在程序啟動(dòng)時(shí),請(qǐng)求一個(gè)互斥體,如果能獲取對(duì)指定互斥的訪問(wèn)權(quán),就繼續(xù)運(yùn)行程序,否則就退出程序

System.Threading.Mutex :同步基元,它只向一個(gè)線程授予對(duì)共享資源的獨(dú)占訪問(wèn)權(quán)。
實(shí)現(xiàn)原理: 在程序啟動(dòng)時(shí),請(qǐng)求一個(gè)互斥體,如果能獲取對(duì)指定互斥的訪問(wèn)權(quán),就繼續(xù)運(yùn)行程序,否則就退出程序。
測(cè)試代碼:

復(fù)制代碼 代碼如下:

class Test
     {
         /// <summary>
         /// 應(yīng)用程序的主入口點(diǎn)。
         /// </summary>
          [STAThread]
         static void Main(string[] args)
         {
              bool flag=false;
              System.Threading.Mutex mutex=new System.Threading.Mutex(true,"Test",out flag);
              //第一個(gè)參數(shù):true--給調(diào)用線程賦予互斥體的初始所屬權(quán)
              //第一個(gè)參數(shù):互斥體的名稱
              //第三個(gè)參數(shù):返回值,如果調(diào)用線程已被授予互斥體的初始所屬權(quán),則返回true
              if(flag)
              {
                   Console.Write("Running");
              }
              else
              {
                   Console.Write("Another is Running");
                   System.Threading.Thread.Sleep(5000);//線程掛起5秒鐘
                   Environment.Exit(1);//退出程序
              }
              Console.ReadLine();
         }

運(yùn)行結(jié)果:
第一次運(yùn)行,輸出"Running"。
不關(guān)閉第一次運(yùn)行的程序, 進(jìn)行第二次運(yùn)行,輸出"Another is Running",五秒鐘后,程序自動(dòng)退出。

相關(guān)文章

最新評(píng)論