使用mutex實現(xiàn)應用程序單實例運行代碼分享
更新時間:2014年01月06日 10:29:51 作者:
本文主要介紹了使用Mutex實現(xiàn)應用程序單實例運行的方法,實現(xiàn)原理是在程序啟動時,請求一個互斥體,如果能獲取對指定互斥的訪問權,就繼續(xù)運行程序,否則就退出程序
System.Threading.Mutex :同步基元,它只向一個線程授予對共享資源的獨占訪問權。
實現(xiàn)原理: 在程序啟動時,請求一個互斥體,如果能獲取對指定互斥的訪問權,就繼續(xù)運行程序,否則就退出程序。
測試代碼:
復制代碼 代碼如下:
class Test
{
/// <summary>
/// 應用程序的主入口點。
/// </summary>
[STAThread]
static void Main(string[] args)
{
bool flag=false;
System.Threading.Mutex mutex=new System.Threading.Mutex(true,"Test",out flag);
//第一個參數(shù):true--給調用線程賦予互斥體的初始所屬權
//第一個參數(shù):互斥體的名稱
//第三個參數(shù):返回值,如果調用線程已被授予互斥體的初始所屬權,則返回true
if(flag)
{
Console.Write("Running");
}
else
{
Console.Write("Another is Running");
System.Threading.Thread.Sleep(5000);//線程掛起5秒鐘
Environment.Exit(1);//退出程序
}
Console.ReadLine();
}
運行結果:
第一次運行,輸出"Running"。
不關閉第一次運行的程序, 進行第二次運行,輸出"Another is Running",五秒鐘后,程序自動退出。
相關文章
C#使用OpenCV剪切圖片中的人物頭像的實現(xiàn)方法
這篇文章主要介紹了C#使用OpenCV剪切圖片中的人物頭像,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-02-02C#實現(xiàn)3步手動建DataGridView的方法
這篇文章主要介紹了C#實現(xiàn)3步手動建DataGridView的方法,實例分析了C#實現(xiàn)手動創(chuàng)建DataGridView的原理與技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-09-09WinForm開發(fā)中屏蔽WebBrowser腳本錯誤提示的方法
這篇文章主要介紹了WinForm開發(fā)中屏蔽WebBrowser腳本錯誤提示的方法,在C#項目開發(fā)中比較實用,需要的朋友可以參考下2014-08-08