Quand peut-CancellationToken.CanBeCanceled être faux?
-
27-09-2019 - |
Question
La documentation sur CancellationToken.CanBeCanceled
décrit ce il fait, mais ne mentionne pas quand il ne peut jamais être faux. Par conséquent, il est pas tout à fait clair pour moi quand je prêter attention à cette propriété.
Dans quelles circonstances peut-il être faux et quand dois-je regarder?
La solution
Eh bien, CancellationToken.None rendement qui ne sont pas annulables.
Si vous êtes l'utilisateur d'une API qui insiste sur la réception d'un CancellationToken, mais vous avez aucun intérêt à jamais tenter d'annuler le travail, alors vous pouvez passer ce jeton.
Comme quelqu'un la construction une API, vous pouvez être en mesure de faire certaines optimisations si CanBeCancelled retourne false -. Peut-être de « coûteux » pour vous de vérifier la propriété IsCancellationRequested
Autres conseils
Par exemple, lorsque le code « entier » de la méthode async est l'appeler une méthode sur la machine distante (serveur par exemple) qui ne peut être annulée (la machine distante ne fournit aucune façon, comment l'annuler). Ensuite, la tâche ne peut pas être annulée -.> Tâche peut être réalisée que (ou lancer exception)