Použijte tuto událost v kombinaci se System.ConsoleCancelEventHandler a System.ConsoleCancelEventArgs. Událost CancelKeyPress může zachytit signál Ctrl+C, aby obslužník události mohl rozhodnout, zda bude pokračovat v vykonání nebo ukončí konzolovou aplikaci. Pro více informací o řešení událostí viz Zpracování a zvyšování událostí. Když uživatel stiskne Ctrl+C nebo Ctrl+Break, CancelKeyPress spustí událost a ConsoleCancelEventHandler aplikace spustí obslužnou složku události. Event handler předává objekt ConsoleCancelEventArgs se dvěma užitečnými vlastnostmi: SpecialKey: Určuje, zda uživatel volá handler stisknutím Ctrl+C (hodnota vlastnosti bude ConsoleSpecialKey.ControlC) nebo Ctrl+Break (hodnota vlastnosti bude ConsoleSpecialKey.ControlBreak). Cancel, což určuje, jak má aplikace reagovat na uživatele, stisknutím Ctrl+C nebo Ctrl+Break. Ve výchozím nastavení je vlastnost Cancel nepravdivá, protože program ukončí vykonání při ukončení obsluze (handler). Změna vlastnosti na true určuje, že aplikace by měla pokračovat ve spouštění.
// Shrnutí: Když System.ConsoleModifiers.Control upraví klávesu (Ctrl) a konzolový kláves System.ConsoleKey.C (C) nebo klávesy Break se drží současně (Ctrl+C nebo Ctrl+Break). veřejná statická událost ConsoleCancelEventHandler CancelKeyPress; MSDN:https://msdn.microsoft.com/zh-cn/library/system.console.cancelkeypress.aspx
V tomto scénáři otevřeme vlákno a napíšeme while(running) deadloop, který může ovládat, zda program běží nebo ne, prostřednictvím proměnných.
|