Heim >Backend-Entwicklung >C++ >Wie kann ich Konsolen -Exit -Ereignisse in C# Multithread -Anwendungen erfassen?
Verwaltung der Konsolenanwendungsbeendigung in C# mit mehreren Threads
In Multithread C# -Konsole -Anwendungen ist die Sicherstellung des Clean -Programms für das Ressourcenmanagement von entscheidender Bedeutung. Leider bietet .NET keine direkte Veranstaltung für die Konsole -Ausstiegsbehandlung. Dies erfordert alternative Methoden.
Eine effektive Lösung nutzt die Windows -API -Funktion SetConsoleCtrlHandler
über DllImport
. Dies ermöglicht die Registrierung einer benutzerdefinierten Handlerfunktion, die durch bestimmte Konsolensteuersignale ausgelöst wird.
Hier ist eine veranschaulichende Implementierung:
<code class="language-csharp">using System; using System.Runtime.InteropServices; // ... (rest of the code remains the same)</code>
Dieser Code -Snippet zeigt, wie SetConsoleCtrlHandler
zum Erfassen von CTRL_C_EVENT
, CTRL_LOGOFF_EVENT
, CTRL_SHUTDOWN_EVENT
und CTRL_CLOSE_EVENT
verwendet wird. Die Handler
-Funktion wird ausgeführt, wenn eines dieser Ereignisse auftritt.
Wichtige Überlegung: Die Zuverlässigkeit dieser Methode kann unter Windows 7 beeinträchtigt werden, wie in verwandten Diskussionen angegeben. Weitere Untersuchungen können für eine optimale Kompatibilität für verschiedene Windows -Versionen erforderlich sein.
Das obige ist der detaillierte Inhalt vonWie kann ich Konsolen -Exit -Ereignisse in C# Multithread -Anwendungen erfassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!