Heim > Backend-Entwicklung > C++ > Wie kann ich Strg-C-Interrupts in einer C#-Konsolenanwendung ordnungsgemäß behandeln?

Wie kann ich Strg-C-Interrupts in einer C#-Konsolenanwendung ordnungsgemäß behandeln?

Barbara Streisand
Freigeben: 2024-12-27 09:38:13
Original
986 Leute haben es durchsucht

How Can I Gracefully Handle Ctrl C Interrupts in a C# Console Application?

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
};
Nach dem Login kopieren

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
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage