C# 콘솔 애플리케이션에서 Ctrl C(SIGINT) 처리
C#에서 Ctrl C(SIGINT)를 트랩하면 정상적으로 종료하기 전에 필요한 정리가 가능합니다. 콘솔 애플리케이션. Console.CancelKeyPress 이벤트는 이러한 중단을 처리하는 방법을 제공합니다.
Console.CancelKeyPress 사용
다음 코드는 CancelKeyPress 이벤트를 사용하는 방법을 보여줍니다.
public static void Main(string[] args) { Console.CancelKeyPress += delegate { // Perform clean-up actions }; while (true) {} }
사용자가 Ctrl C를 누르면 위임 코드가 실행되어 정리 프로세스가 완료되고 프로그램이 즉시 종료됩니다.
특정 사용 사례
계산을 즉시 중단하는 것이 바람직하지 않은 시나리오에서는 대체 접근 방식을 권장합니다.
class MainClass { private static bool keepRunning = true; public static void Main(string[] args) { Console.CancelKeyPress += delegate(object? sender, ConsoleCancelEventArgs e) { e.Cancel = true; MainClass.keepRunning = false; }; while (MainClass.keepRunning) { // Perform small chunks of work } Console.WriteLine("exited gracefully"); } }
이 구현은 e.Cancel 플래그를 true로 설정하여 프로그램이 즉시 종료되는 것을 방지합니다. 대신, keepRunning 변수가 false로 설정되어 진행 중인 계산이 완료된 후 while 루프가 종료될 수 있습니다. 이 접근 방식을 사용하면 프로그램을 정상적으로 종료할 수 있습니다.
위 내용은 C# 콘솔 애플리케이션에서 Ctrl C 인터럽트를 어떻게 원활하게 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!