Sobes.tech
Junior — Middle

¿Puede explicar el concepto de token de cancelación en el contexto de la programación multihilo?

sobes.tech AI

Respuesta de la IA

El token de cancelación (Cancellation Token) en programación multihilo es un objeto que se utiliza para coordinar la cancelación de operaciones asíncronas o paralelas.

La idea principal: un hilo (o componente) puede solicitar la cancelación de una operación, y otros que están ejecutando esa operación pueden verificar periódicamente el estado del token y finalizar correctamente si se ha solicitado la cancelación.

En C#, esto se implementa mediante la clase CancellationToken y CancellationTokenSource:

  • CancellationTokenSource crea un token y puede señalizar la cancelación.
  • CancellationToken se pasa a tareas o métodos que pueden verificar IsCancellationRequested y reaccionar ante la cancelación.

Ejemplo:

var cts = new CancellationTokenSource();
var token = cts.Token;

Task.Run(() => {
    while (!token.IsCancellationRequested)
    {
        // Realizar trabajo
    }
    // Limpieza y finalización
}, token);

// En algún lugar del código, se solicita la cancelación
cts.Cancel();

Esto permite interrumpir de manera segura y controlada operaciones largas o en segundo plano.