Meilleure pratique: Gestion correcte CANCELLATIONTOKENSOURCE
] Bien que la classe CANCELLATIONTOKENSOURCE
puisse être publiée, sa méthode de libération correcte confond souvent les développeurs. Cet article explore en profondeur quand et comment libérer efficacement une telle espèce.
L'une des raisons de cette clarté est que la classe annulationtokensource
n'a pas de finalisateur. Cela signifie que le collecteur de déchets (GC) ne peut pas le libérer automatiquement. Par conséquent, il devient la responsabilité du développeur de libérer explicitement la source de jeton.
Néanmoins, les exemples fournis sur MSDN mentionnent rarement la version. Alors, quelle est la méthode recommandée?
Release Strategy
Utilisez l'instruction «Utilisation» lorsque vous attendez que la tâche se termine: Si vous attendez que la tâche parallèle se termine, vous pouvez utiliser l'instruction «Utilisation» pour envelopper le code. Cela garantit que la source de jeton est automatiquement libérée une fois la tâche terminée:
using (CancellationTokenSource tokenSource = new CancellationTokenSource())
{
Task.Run(() => { }, tokenSource.Token);
}
Utilisez continue avec et la version manuelle: Alternativement, vous pouvez enregistrer un gestionnaire d'événements continue avec la tâche et libérer manuellement la source de jeton dans le gestionnaire:
Task.Run(async () =>
{
try
{
// 任务代码
}
finally
{
tokenSource.Dispose();
}
}, tokenSource.Token);
requête PLINQ annulée: Pour la requête Plinq non synchronisée non synchronisée, la méthode recommandée consiste à exécuter dans le gestionnaire d'événements
toutes les opérations CANCELLATIONTOKENSOURCE
.
Réutilisabilité et utilisation multiple: CANCELLATIONTOKENSOURCE
L'instance n'est pas réutilisable. Ils doivent être créés et libérés pour chaque opération d'annulation.
Release directement: Si vous ne pouvez pas utiliser l'instruction 'Utilisation' ou le gestionnaire d'événements continue, vous pouvez libérer la source de jeton directement une fois terminé:
CancellationTokenSource tokenSource = new CancellationTokenSource();
Task.Run(() => { }, tokenSource.Token);
// ...
tokenSource.Dispose();
Résumer
relâcher CANCELLATIONTOKENSOURCE
L'instance est essentielle pour empêcher les fuites de mémoire et assurer une bonne gestion des ressources. En suivant la stratégie de libération recommandée, les développeurs peuvent gérer efficacement les opérations d'annulation dans leur code.
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