Maison >développement back-end >C++ >Quand et comment devez-vous vous débarrasser d'un CancellationTokenSource ?
Comprendre l'élimination de CancellationTokenSource dans .NET
La classe CancellationTokenSource
est cruciale pour gérer l'annulation dans les applications .NET. Cependant, son élimination appropriée est souvent négligée, ce qui entraîne de potentielles fuites de ressources. Cet article clarifie quand et comment se débarrasser efficacement des CancellationTokenSource
objets.
Pourquoi disposer est crucial
CancellationTokenSource
s'appuie sur des ressources non gérées (en particulier, un KernelEvent). Si vous ne les éliminez pas correctement, ces ressources restent indisponibles, provoquant des fuites de mémoire. Ceci est particulièrement problématique dans les processus ou services de longue durée.
Méthodes d'élimination efficaces
La stratégie d'élimination optimale dépend du contexte de votre application :
Utilisation de l'instruction (pour les tâches synchrones ou facilement attendues) : Si votre tâche d'annulation se termine de manière synchrone ou si vous pouvez facilement attendre son achèvement, encapsulez le CancellationTokenSource
dans une instruction using
. Cela garantit l'élimination une fois la tâche terminée.
ContinueWith Task (pour les tâches asynchrones) : Pour les opérations asynchrones où l'élimination immédiate n'est pas possible, attachez une tâche ContinueWith
à votre tâche d'annulation. Cette tâche de continuation doit explicitement disposer du CancellationTokenSource
.
Élimination explicite (pour des scénarios comme PLINQ) : Dans les cas où il manque des mécanismes de synchronisation inhérents (par exemple, requêtes PLINQ), supprimez manuellement le CancellationTokenSource
une fois l'opération terminée.
Nature à usage unique de CancellationTokenSource
Il est important de se rappeler que les CancellationTokenSource
instances sont conçues pour un usage unique. Ils ne peuvent pas être réinitialisés ou réutilisés après l’annulation. La création d'une nouvelle instance pour chaque demande d'annulation est essentielle pour un comportement prévisible et une gestion des ressources.
Bonnes pratiques
Pour éviter les fuites de ressources et maintenir la stabilité des applications, éliminez toujours CancellationTokenSource
les objets rapidement dès qu'ils ne sont plus nécessaires. Utilisez la technique d'élimination appropriée en fonction de la nature de la tâche (synchrone, asynchrone ou autre). Créez toujours un nouveau CancellationTokenSource
pour chaque opération d'annulation.
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!