Sobes.tech
Junior — Middle

Оё метавонед мафҳуми токени бекориро дар контексти барномасозии бисёрсоҳавӣ шарҳ диҳед?

sobes.tech AI

Ҷавоб аз AI

Токени бекор (Cancellation Token) дар барномаи бисёртариҷагӣ объектиест, ки барои ҳамоҳангсозии бекор кардани амалҳои асинхронӣ ё параллелӣ истифода мешавад.

Нақшаи асосӣ: як ҷараён (ё компонент) метавонад дархост кунад, ки амал бекор шавад, ва дигарон, ки ин амалро иҷро мекунанд, метавонанд ҳолати токенро ба таври мунтазам санҷида, агар бекор кардан талаб карда шавад, ба таври дуруст анҷом диҳанд.

Дар C# ин тавассути синфҳои CancellationToken ва CancellationTokenSource амалӣ мешавад:

  • CancellationTokenSource токенро месозад ва метавонад сигнал диҳад, ки бекор кардан лозим аст.
  • CancellationToken ба вазифаҳо ё методҳо дода мешавад, ки метавонанд IsCancellationRequested-ро санҷида, ба бекор кардан ҷавоб диҳанд.

Масалан:

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

Task.Run(() => {
    while (!token.IsCancellationRequested)
    {
        // Корро иҷро кунед
    }
    // Тоза кардан ва анҷом додан
}, token);

// Дар куҷое дар код, дархост барои бекор кардан
cts.Cancel();

Ин имкон медиҳад, ки амалҳои дарозмуддат ё пасзаминаи бехатар ва назоратшаванда қатъ карда шаванд.