> 백엔드 개발 > C++ > C# 콘솔 애플리케이션에서 Ctrl C 인터럽트를 어떻게 원활하게 처리할 수 있습니까?

C# 콘솔 애플리케이션에서 Ctrl C 인터럽트를 어떻게 원활하게 처리할 수 있습니까?

Barbara Streisand
풀어 주다: 2024-12-27 09:38:13
원래의
946명이 탐색했습니다.

How Can I Gracefully Handle Ctrl C Interrupts in a C# Console Application?

C# 콘솔 애플리케이션에서 Ctrl C(SIGINT) 트랩

Ctrl C( SIGINT), Console.CancelKeyPress 이벤트는 다음과 같습니다. 활용합니다.

Console.CancelKeyPress 이벤트 사용:

사용자가 Ctrl C를 누르면 Console.CancelKeyPress 이벤트가 발생합니다. 이 이벤트에 이벤트 핸들러를 등록하면, 프로그램이 종료되기 전에 코드가 실행될 수 있습니다.

Console.CancelKeyPress += delegate {
    // Perform cleanup operations
};
로그인 후 복사

Ctrl C를 누르면 코드가 이벤트 핸들러 내에서 실행되어 필수 정리 작업을 완료할 수 있습니다. 대리자 이후에는 코드가 실행되지 않는다는 점에 유의하는 것이 중요합니다.

복잡한 시나리오 처리:

작업을 즉시 종료하는 것이 실용적이지 않은 상황의 경우 다른 접근 방식을 사용할 수 있습니다. 다음 코드는 계산이 완료된 후 프로그램이 정상적으로 종료되도록 지시하는 방법을 보여줍니다.

bool keepRunning = true;

Console.CancelKeyPress += delegate(object sender, ConsoleCancelEventArgs e) {
    e.Cancel = true;
    keepRunning = false;
};

while (keepRunning) {
    // Perform work in small chunks
}
로그인 후 복사

e.Cancel을 true로 설정하면 이벤트 핸들러 이후에도 실행이 계속됩니다. Ctrl C를 누르면 keepRunning 변수가 false로 설정되어 프로그램이 정상적으로 종료됩니다.

위 내용은 C# 콘솔 애플리케이션에서 Ctrl C 인터럽트를 어떻게 원활하게 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿