Maison > développement back-end > C++ > Comment implémenter des délais d'attente génériques en C# pour empêcher le code de se bloquer ?

Comment implémenter des délais d'attente génériques en C# pour empêcher le code de se bloquer ?

DDD
Libérer: 2025-01-23 11:57:10
original
240 Les gens l'ont consulté

How to Implement Generic Timeouts in C# to Prevent Code from Hanging?

Implémentation d'un mécanisme de timeout universel en C#

Lors de l'interaction avec du code peu fiable, il est crucial de mettre en œuvre un mécanisme commun pour exécuter des blocs de code spécifiques avec des délais d'attente définis. Cette approche générale peut être appliquée à divers scénarios et améliore la robustesse du code.

L'un des principaux défis est de savoir comment mettre fin aux tâches de longue durée si elles expirent. Pour surmonter ce problème, nous utilisons un délégué enveloppé. Ce délégué transmet le thread d'exécution à une variable locale, permettant de terminer le thread si nécessaire.

Le code C# fourni contient une méthode statique CallWithTimeout qui effectue une opération spécifiée dans un délai d'attente spécifié. En cas d'expiration, cette méthode abandonnera le thread en cours d'exécution et lèvera une exception TimeoutException.

Exemple d'utilisation :

<code class="language-csharp">class Program
{
    static void Main(string[] args)
    {
        // 五秒钟的方法,超时时间为六秒钟
        CallWithTimeout(FiveSecondMethod, 6000); 
    }

    static void FiveSecondMethod()
    {
        Thread.Sleep(5000);
    }
}</code>
Copier après la connexion

Ce code montre comment implémenter un mécanisme de délai d'attente universel en C#, permettant aux développeurs de gérer les tâches fastidieuses avec élégance et d'éviter que le code ne reste bloqué pendant l'exécution.

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal