Token de cancelación en el constructor de tareas: ¿por qué?
CiertoSystem.Threading.Tasks.Task
los constructores toman unCancellationToken
como parámetro:
CancellationTokenSource source = new CancellationTokenSource();
Task t = new Task (/* method */, source.Token);
Lo que me desconcierta de esto es que no hay forma dedentro el cuerpo del método para obtener realmente el token pasado (por ejemplo, nada comoTask.CurrentTask.CancellationToken
) El token debe proporcionarse a través de algún otro mecanismo, como el objeto de estado o capturado en una lambda.
Entonces, ¿para qué sirve proporcionar el token de cancelación en el constructor?