Implémentation de feu et d'Onut efficace dans C #
C # offre plusieurs façons de créer des méthodes "Fire-and-Forget" - des fonctions qui s'exécutent sans bloquer l'appelant. Alors que l'attribut [OperationContract (isOneway = true)]
était une approche commune, les alternatives plus simples offrent de meilleures performances.
appels de méthode non bloquants simples
Ces options offrent une exécution rapide et efficace non bloquant:
Threadpool.QueueUserWorkItem
: Cela ajoute une méthode au pool de threads, l'exécutant sur un thread d'arrière-plan. ThreadPool.QueueUserWorkItem(o => FireAway());
tâche.run
: introduit dans .net 4.0, tâche.run
crée et planifie une tâche sur le pool de threads. Task.Run(() => FireAway());
Les deux méthodes lancent FireAway
de manière asynchrone, laissant le thread principal continuer pendant que la tâche d'arrière-plan s'exécute.
Considérations importantes pour les méthodes non bloquantes
N'oubliez pas que le non-blocage ne garantit pas l'achèvement. La méthode appelée peut ne pas se terminer avant la sortie du programme. Si le succès de la méthode est essentiel aux fonctionnalités de votre application, vous aurez besoin de mécanismes supplémentaires pour assurer l'achèvement. Cela peut impliquer le blocage des fils ou la manipulation d'achèvement dédiée, en particulier dans des environnements comme ASP.NET, où la terminaison prématurée pourrait être problématique.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3