Sobes.tech
Junior — Middle

Vai jūs varat izskaidrot atcelšanas žetona jēdzienu daudzvadu programmēšanas kontekstā?

sobes.tech AI

Atbilde no AI

Daudzš threaded programmēšanā atcelšanas žetons (Cancellation Token) ir objekts, kas tiek izmantots asinhrono vai paralēlo operāciju atcelšanas koordinēšanai.

Galvenā ideja: viens pavedienis (vai komponenta) var pieprasīt operācijas atcelšanu, un citi, kas veic šo operāciju, var periodiski pārbaudīt žetona stāvokli un pareizi pabeigt, ja ir pieprasīts atcelšana.

C# tas tiek īstenots ar CancellationToken un CancellationTokenSource klasēm:

  • CancellationTokenSource izveido žetonu un var signalizēt par atcelšanu.
  • CancellationToken tiek nodots uzdevumiem vai metodēm, kas var pārbaudīt IsCancellationRequested un reaģēt uz atcelšanu.

Piemērs:

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

Task.Run(() => {
    while (!token.IsCancellationRequested)
    {
        // Veikt darbu
    }
    // Tīrīšana un pabeigšana
}, token);

// Kādā vietā kodā pieprasām atcelšanu
cts.Cancel();

Tas ļauj droši un kontrolēti pārtraukt ilgstošas vai fonu operācijas.