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

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

Mary-Kate Olsen
풀어 주다: 2025-01-05 08:04:44
원래의
456명이 탐색했습니다.

How Do I Gracefully Handle Ctrl C Interrupts in C# Console Applications?

C# 콘솔 애플리케이션에서 Ctrl C(SIGINT)를 처리하는 방법

C# 콘솔 애플리케이션의 일반적인 시나리오는 사용자가 정리 프로세스를 관리하는 것입니다. Ctrl C(SIGINT)를 누릅니다. 이 신호는 애플리케이션이 현재 실행을 중단하고 종료하도록 요청합니다. 잘 구조화되고 사용자 친화적인 애플리케이션을 구현하려면 이 신호를 트랩하는 방법을 이해하는 것이 중요합니다.

Console.CancelKeyPress 이벤트 사용

Ctrl을 가로채는 기본 방법 C#의 C는 Console.CancelKeyPress 이벤트를 통해 이루어집니다. 이 이벤트는 사용자가 Ctrl C를 누를 때 트리거됩니다. 이에 대한 응답으로 프로그램이 종료되기 전에 수행하려는 정리 작업이 포함된 대리자를 정의할 수 있습니다.

다음은 Console.CancelKeyPress 이벤트 사용의 예입니다.

public static void Main(string[] args)
{
    Console.CancelKeyPress += delegate {
        // Perform cleanup operations here
    };

    while (true) // Keep the program running until Ctrl+C is pressed
    {

    }
}
로그인 후 복사

사용자가 Ctrl C를 누르면 Console.CancelKeyPress 이벤트에 할당된 위임이 실행되어 필요한 작업을 수행할 수 있습니다. 정리.

장기 실행 작업 처리

일부 시나리오에서는 애플리케이션이 즉시 중단할 수 없는 장기 실행 작업을 수행할 수 있습니다. 이러한 경우 Console.CancelKeyPress를 사용하는 것은 적절하지 않을 수 있습니다.

대체 솔루션은 set-reset 이벤트를 사용하는 것입니다. 수동 재설정으로 이벤트를 생성하고 Console.CancelKeyPress 이벤트에 할당된 대리자에서 이를 구독합니다. 사용자가 Ctrl C를 누르면 이벤트를 설정합니다. 메인 루프는 이벤트 상태를 확인하고 이벤트가 설정되면 정상적으로 종료할 수 있습니다.

결론

C# 콘솔 애플리케이션에서 Ctrl C(SIGINT)를 트랩하는 것은 필수적입니다. 사용자가 프로그램을 중단하고 정상적으로 종료할 수 있도록 합니다. Console.CancelKeyPress 이벤트나 set-reset 이벤트와 같은 대체 접근 방식을 활용하면 Ctrl C 신호를 효과적으로 처리하고 사용자 친화적인 애플리케이션을 유지할 수 있습니다.

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

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