C 建立互斥程式 只允許執行乙個程式例項

2022-02-25 15:20:31 字數 755 閱讀 5055

方法一:

使用執行緒互斥變數. 通過定義互斥變數來判斷是否已執行例項,但是這種方法有乙個問題,當程式執行中需要採取重啟程式時會出現問題,

沒有同意程式執行的情況下,仍然提示有形同程式在執行。

把program.cs檔案裡的main()函式改為如下**:

private static mutex s_mutex;

/// /// 應用程式的主入口點。

///

[stathread]

static void main()

else

}finally

}}

方法二:採用判斷程序的方式,我們在執行程式前,查詢程序中是否有同名的程序,同時執行位置也相同程,如是沒有執行該程式,如果有就就不執行.在c#中應用system.diagnostics名字空間中的process類來實現,主要**如下: 

1,在program.cs檔案中新增函式如下:

/// /// 判斷是否執行程序

///

///

public static system.diagnostics.process runninginstance()}}

return null;

}

2,把main ()函式改為如下**:

static void main() 

else

}

只允許程式執行乙個例項

有兩類方法 第一類 判斷程序是否存在,如果存在則直接退出。第二類 最簡單也是最準確的方法,用命名的互斥物件。如下 m hmutex 可以是成員變數,全域性變數或者是區域性變數 m hmutex createmutex null,false,t not imide if m hmutex 在呼叫 cr...

C 只允許執行乙個例項

互斥程序 程式 簡單點說,就是在系統中只能有該程式的乙個例項執行.現在很多軟體都有這功能,如maxthon 可以設定為 只允 許開啟乙個窗體 還有bitcomet等.我也是看到這些軟體的這個功能才來研究這個問題的.要實現程式的互斥,通常有三中方式,下面 用 c 語言來實現 實現方式一 使用執行緒互斥...

C WinForm程式只允許執行乙個例項

只允許程式執行乙個例項,也就是說你只能雙擊執行乙個程式一次,第二次雙擊執行將看到某某警告,只有關閉程式再開。方法有很多種 mutex執行緒互斥變數法,程序查詢法,全域性原子法。其中第一種簡單實用,其它兩種 只允許執行乙個例項 檢視。mutex執行緒互斥變數法 在program.cs檔案中修改 boo...