Metoda 1: Používejte proměnné Thread Mutex. Definujte mutex proměnné, abyste zjistili, zda instance běží. Změňte funkci Main() v souboru program.cs na následující kód:
Poznámka: V programu příkaz System.Threading.Mutex run = new System.Threading.Mutex(true, "single_test", out runone); Pro vytvoření mutex proměnné běží, kde "single_test" je mutex název, a když se tato metoda vrátí, pokud je vytvořen lokální mutex nebo specifikovaný systém pojmenování mutex, booleovská hodnota runone je pravdivá; nepravdivé, pokud již existuje specifikovaný systém pojmenovávání mutexe. Pojmenované mutexy jsou systémově rozšířené. Metoda 2: Použijte způsob hodnocení procesu, před spuštěním programu zjistíme, zda v procesu existuje proces se stejným názvem a zda je běžící pozice také stejný proces. Použijte třídu Process v jmenném prostoru System.Diagnostics v C# pro její implementaci, hlavní kód je následující: 1. Přidejte funkci do program.cs souboru následovně:
2. Změňte hlavní funkci () na následující kód:
Metoda 3: Globální atomická metoda, před vytvořením programu nejprve zkontrolujte globální atomovou tabulku, zda existuje konkrétní atom A (přidaný při vytvoření), a přestaňte jej vytvářet, když existuje, což znamená, že program spustil instanci; Pokud neexistuje, spusťte program a chcete přidat konkrétní atom A do globální atomové tabulky; Při ukončení programu nezapomeňte uvolnit konkrétní atom A, jinak nebude uvolněn, dokud nebude počítač vypnutý. Implementace v C# je následující: 1. Deklarovat rozhraní funkce WinAPI
[System.Runtime.InteropServices.DllImport("kernel32.dll")] public static extern UInt32 GlobalAddAtom(String lpString); Přidat atomy [System.Runtime.InteropServices.DllImport("kernel32.dll")] public static extern UInt32 GlobalFindAtom(String lpString); Najdi atomy [System.Runtime.InteropServices.DllImport("kernel32.dll")] veřejný statický extern UInt32 GlobalDeleteAtom(UInt32 nAtom); Smazat atomy 2. Upravte funkci Main() následovně:
3. Přidejte následující kód k události FormClosed: GlobalDeleteAtom(GlobalFindAtom("jiaao_test")); Smažte atomové "jiaao_test" --------------------------------------*-------*--------*----------------------------------------------- Výše uvedené je základní obecná myšlenka vytvoření vzájemně se vylučujícího programu a osobně si myslím, že první metoda je nejjednodušší. |