使用mutex實現(xiàn)應用程序單實例運行代碼分享
更新時間:2014年01月06日 10:29:51 作者:
本文主要介紹了使用Mutex實現(xiàn)應用程序單實例運行的方法,實現(xiàn)原理是在程序啟動時,請求一個互斥體,如果能獲取對指定互斥的訪問權(quán),就繼續(xù)運行程序,否則就退出程序
System.Threading.Mutex :同步基元,它只向一個線程授予對共享資源的獨占訪問權(quán)。
實現(xiàn)原理: 在程序啟動時,請求一個互斥體,如果能獲取對指定互斥的訪問權(quá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--給調(diào)用線程賦予互斥體的初始所屬權(quán)
//第一個參數(shù):互斥體的名稱
//第三個參數(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();
}
運行結(jié)果:
第一次運行,輸出"Running"。
不關(guān)閉第一次運行的程序, 進行第二次運行,輸出"Another is Running",五秒鐘后,程序自動退出。
相關(guān)文章
C#中使用HttpPost調(diào)用WebService的方法
這篇文章介紹了C#中使用HttpPost調(diào)用WebService的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03C#使用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-08C# 如何調(diào)用C++ dll string類型返回
這篇文章主要介紹了C# 如何調(diào)用C++ dll string類型返回問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-11-11