Pytania otagowane jako cancellation-token

4
Token anulowania w Konstruktorze zadań: dlaczego?
Niektóre System.Threading.Tasks.Taskkonstruktory przyjmują CancellationTokenjako parametr: CancellationTokenSource source = new CancellationTokenSource(); Task t = new Task (/* method */, source.Token); Zaskakuje mnie to, że z wnętrza metody nie ma sposobu, aby faktycznie dostać się do przekazanego tokena (np. Nic podobnego Task.CurrentTask.CancellationToken). Token musi być dostarczony przez inny mechanizm, taki jak obiekt …

5
Dlaczego CancellationToken jest oddzielony od CancellationTokenSource?
Szukam uzasadnienia, dlaczego CancellationTokenstruktura .NET została wprowadzona jako dodatek do CancellationTokenSourceklasy. Rozumiem, jak należy używać interfejsu API, ale chcę również zrozumieć, dlaczego jest tak zaprojektowany. To znaczy, dlaczego mamy: var cts = new CancellationTokenSource(); SomeCancellableOperation(cts.Token); ... public void SomeCancellableOperation(CancellationToken token) { ... token.ThrowIfCancellationRequested(); ... } zamiast bezpośredniego przekazywania, CancellationTokenSourcejak: var …

6
Domyślny parametr dla CancellationToken
Mam kod asynchroniczny, do którego chciałbym dodać CancellationToken. Jest jednak wiele implementacji, w których nie jest to potrzebne, więc chciałbym mieć parametr domyślny - być może CancellationToken.None. Jednak, Task<x> DoStuff(...., CancellationToken ct = null) plony Wartość typu „” nie może być używana jako parametr domyślny, ponieważ nie ma standardowych konwersji …
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.