Strg C (SIGINT) in einer C#-Konsolenanwendung abfangen
Um die Unterbrechung einer C#-Konsolenanwendung durch Drücken von Strg C ( SIGINT) kann das Console.CancelKeyPress-Ereignis genutzt werden.
Mit dem Console.CancelKeyPress-Ereignis:
Das Console.CancelKeyPress-Ereignis wird ausgelöst, wenn der Benutzer Strg C drückt. Durch die Registrierung eines Ereignishandlers für dieses Ereignis kann Code ausgeführt werden, bevor das Programm beendet wird.
Console.CancelKeyPress += delegate { // Perform cleanup operations };
Wenn Strg C gedrückt wird, wird der Code im Event-Handler ausgeführt, sodass wichtige Bereinigungsaufgaben abgeschlossen werden können. Es ist wichtig zu beachten, dass kein Code nach dem Delegaten ausgeführt wird.
Umgang mit komplexen Szenarien:
Für Situationen, in denen die sofortige Beendigung einer Aufgabe nicht praktikabel ist, a Es kann ein anderer Ansatz verwendet werden. Der folgende Code zeigt, wie man das Programm anweist, nach Abschluss einer Berechnung ordnungsgemäß zu beenden:
bool keepRunning = true; Console.CancelKeyPress += delegate(object sender, ConsoleCancelEventArgs e) { e.Cancel = true; keepRunning = false; }; while (keepRunning) { // Perform work in small chunks }
Indem Sie e.Cancel auf „true“ setzen, wird die Ausführung nach dem Ereignishandler fortgesetzt. Die Variable keepRunning wird auf „false“ gesetzt, wenn Strg C gedrückt wird, wodurch das Programm ordnungsgemäß beendet wird.
Das obige ist der detaillierte Inhalt vonWie kann ich Strg-C-Interrupts in einer C#-Konsolenanwendung ordnungsgemäß behandeln?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!