Quando si può CancellationToken.CanBeCanceled essere falso?
-
27-09-2019 - |
Domanda
La documentazione sul CancellationToken.CanBeCanceled
descrive ciò che lo fa, ma non menziona quando può mai essere falso. Quindi non è del tutto chiaro per me quando ho dovuto prestare attenzione a questa proprietà.
In quali circostanze può essere falso e quando devo guardare?
Soluzione
Bene, CancellationToken.None uno che non è annullabile.
Se sei l'utente di un'API che insiste su ricezione di un CancellationToken, ma hai alcun interesse a mai tentare di annullare il lavoro, allora si può solo passare questo token.
Come qualcuno costruzione un'API, si può essere in grado di fare alcune ottimizzazioni se CanBeCancelled restituisce false -. Forse è "costoso" per voi per controllare la proprietà IsCancellationRequested
Altri suggerimenti
Per esempio, quando "tutto" il codice del metodo asincrono è l'chiamando un metodo sulla macchina remota (server, per esempio) che non può essere annullata (la macchina remota non fornisce alcun modo, come cancellare quello). Quindi il compito non può essere cancellato -.> Compito può essere completato solo (o buttare eccezione)