Použite túto udalosť v kombinácii so System.ConsoleCancelEventHandler a System.ConsoleCancelEventArgs. Udalosť CancelKeyPress môže zachytiť signál Ctrl+C, takže obslužovateľ udalostí môže rozhodnúť, či bude pokračovať v vykonávaní alebo ukončí konzolovú aplikáciu. Pre viac informácií o spracovaní udalostí pozri Spracovanie a zvyšovanie udalostí. Keď používateľ stlačí Ctrl+C alebo Ctrl+Break, CancelKeyPress spustí udalosť a aplikačný ConsoleCancelEventHandler spustí obsługu udalostí. Event handler prenáša objekt ConsoleCancelEventArgs s dvoma užitočnými vlastnosťami: SpecialKey: Určuje, či používateľ volá handler stlačením Ctrl+C (hodnota vlastnosti bude ConsoleSpecialKey.ControlC) alebo Ctrl+Break (hodnota vlastnosti bude ConsoleSpecialKey.ControlBreak). Cancel, ktorý určuje, ako má aplikácia reagovať na používateľa, stlačením Ctrl+C alebo Ctrl+Break. Predvolene je vlastnosť Cancel nepravdivá, pretože program ukončí vykonávanie pri ukončení handleru. Zmena vlastnosti na true špecifikuje, že aplikácia by mala pokračovať vo vykonávaní.
// Súhrn: Keď System.ConsoleModifiers.Control upravujú kláves (Ctrl) a konzolový kľúč System.ConsoleKey.C (C) alebo klávesy Break sa držia súčasne (Ctrl+C alebo Ctrl+Break). verejná statická udalosť ConsoleCancelEventHandler CancelKeyPress; MSDN: https://msdn.microsoft.com/zh-cn/library/system.console.cancelkeypress.aspx
V scenári otvoríme vlákno a napíšeme while(running) deadloop, ktorý môže ovládať, či program beží alebo nie, cez premenné.
|