Alcuni System.Threading.Tasks.Taskcostruttori prendono a CancellationTokencome parametro:
CancellationTokenSource source = new CancellationTokenSource();
Task t = new Task (/* method */, source.Token);
Ciò che mi sorprende di questo è che non c'è modo dall'interno del corpo del metodo di ottenere effettivamente il token passato (ad esempio, niente di simile Task.CurrentTask.CancellationToken). Il token deve essere fornito tramite qualche altro meccanismo, come l'oggetto stato o catturato in un lambda.
Quindi, a cosa serve fornire il token di annullamento nel costruttore?