Wie kann eine Konsolenanwendung am besten geöffnet bleiben, solange das CancelKeyPress-Ereignis nicht ausgelöst wurde?
Ich würde es vorziehen, Console.Read oder Console.ReadLine nicht zu verwenden, da ich keine Eingabe akzeptieren möchte. Ich möchte nur die zugrunde liegende Anwendung aktivieren, um auf die Ereignisdetails der Konsole zu drucken, wenn sie ausgelöst werden. Dann, sobald das CancelKeyPress-Ereignis ausgelöst wird, möchte ich die Anwendung ordnungsgemäß herunterfahren.
Ich gehe davon aus, dass "die Anwendung anmutig heruntergefahren" ist der Teil, mit dem Sie hier kämpfen. Andernfalls wird Ihre Anwendung automatisch auf ctrl-c beendet. Sie sollten den Titel ändern.
Hier ist eine kurze Demo von dem, was ich denke, dass Sie brauchen. Es könnte ein bisschen mehr verfeinert werden mit der Verwendung von Sperren und Monitore für die Benachrichtigung. Ich bin mir nicht sicher, was genau du brauchst, also werde ich das nur aufstellen ...
%Vor% Der _s_stop
boolean sollte im Beispielcode als flüchtig deklariert werden, oder ein zu ambitionierter Optimierer kann dazu führen, dass das Programm unendlich wiederholt wird.
Es ist bereits ein Handler an CancelKeyPress gebunden, der Ihre Anwendung beendet. Der einzige Grund dafür ist, dass Sie das Ereignis abfangen und verhindern möchten, dass die App geschlossen wird.
Fügen Sie in Ihrer Situation einfach Ihre App in eine Endlosschleife ein und lassen Sie sie vom integrierten Event-Handler löschen. Vielleicht möchten Sie etwas wie Wait (1) oder einen Hintergrundprozess verwenden, um zu verhindern, dass es tonnenweise CPU verbraucht, während Sie nichts tun.
Führen Sie einfach Ihr Programm oder Ihre Codes ohne Debugging aus, drücken Sie auf Ihrer Tastatur STRG + f5 anstelle von F5 (Debugging).