Użyj tego zdarzenia w połączeniu z System.ConsoleCancelEventHandler oraz System.ConsoleCancelEventArgs. Zdarzenie CancelKeyPress może przechwycić sygnał Ctrl+C, aby obsługiwacz zdarzenia mógł zdecydować, czy kontynuować wykonywanie, czy zakończyć aplikację konsolową. Więcej informacji o obsłudze zdarzeń znajdziesz w sekcji Obsługa i podniesienie zdarzeń. Gdy użytkownik naciśnie Ctrl+C lub Ctrl+Break, CancelKeyPress wywołuje zdarzenie, a ConsoleCancelEventHandler aplikacji wykonuje handler zdarzenia. Obsługa zdarzeń przekazuje obiekt ConsoleCancelEventArgs o dwóch użytecznych właściwościach: SpecialKey: Określa, czy użytkownik wywołuje handler przez naciśnięcie Ctrl+C (wartość właściwości to ConsoleSpecialKey.ControlC) czy Ctrl+Break (wartość właściwości to ConsoleSpecialKey.ControlBreak). Cancel, które określa, jak aplikacja powinna reagować na użytkownika, naciskając Ctrl+C lub Ctrl+Break. Domyślnie właściwość Cancel jest fałszywa, ponieważ program kończy wykonanie, gdy handler kończy działanie. Zmiana właściwości na true określa, że aplikacja powinna kontynuować wykonywanie.
// Streszczenie: Gdy System.ConsoleModifiers.Control modyfikuje (Ctrl) oraz System.ConsoleKey.C console (C) lub Break są jednocześnie przytrzymywane (Ctrl+C lub Ctrl+Break). publiczne zdarzenie statyczne ConsoleCancelEventHandler CancelKeyPress; msdn:https://msdn.microsoft.com/zh-cn/library/system.console.cancelkeypress.aspx
W tym scenariuszu otwieramy wątek i piszemy deadloop while(running), który może kontrolować, czy program działa, przez zmienne.
|