Maison >développement back-end >C++ >Comment gérer efficacement les interruptions Ctrl C dans les applications console C# ?

Comment gérer efficacement les interruptions Ctrl C dans les applications console C# ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-05 08:04:44497parcourir

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

Comment gérer Ctrl C (SIGINT) dans les applications de console C#

Un scénario courant dans les applications de console C# consiste à gérer le processus de nettoyage lorsque les utilisateurs appuyez sur Ctrl C (SIGINT). Ce signal invite l'application à interrompre son exécution en cours et à quitter. Comprendre comment intercepter ce signal est crucial pour implémenter une application bien structurée et conviviale.

Utilisation de l'événement Console.CancelKeyPress

Le principal moyen d'intercepter Ctrl C en C# se fait via l'événement Console.CancelKeyPress. Cet événement est déclenché lorsque l'utilisateur appuie sur Ctrl C. En réponse, vous pouvez définir un délégué qui contient les opérations de nettoyage que vous souhaitez effectuer avant la fermeture du programme.

Voici un exemple d'utilisation de l'événement 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
    {

    }
}

Lorsque l'utilisateur appuie sur Ctrl C, le délégué affecté à l'événement Console.CancelKeyPress sera exécuté, vous permettant d'effectuer toutes les opérations nécessaires nettoyage.

Gestion des opérations de longue durée

Dans certains scénarios, votre application peut effectuer des opérations de longue durée qui ne peuvent pas être interrompues immédiatement. Dans de tels cas, l'utilisation de Console.CancelKeyPress peut ne pas être appropriée.

Une solution alternative consiste à utiliser des événements set-reset. Créez un événement avec une réinitialisation manuelle et abonnez-vous à celui-ci dans le délégué affecté à l'événement Console.CancelKeyPress. Lorsque l'utilisateur appuie sur Ctrl C, définissez l'événement. La boucle principale peut vérifier l'état de l'événement et se terminer normalement lorsque l'événement est défini.

Conclusion

Le traçage de Ctrl C (SIGINT) dans une application console C# est essentiel pour permettre aux utilisateurs d'interrompre le programme et de le quitter en douceur. En utilisant l'événement Console.CancelKeyPress ou des approches alternatives telles que les événements set-reset, vous pouvez gérer efficacement les signaux Ctrl C et maintenir une application conviviale.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn