Sobes.tech
Junior — Middle

Tudja magyarázni a törlés token fogalmát a több szálas programozás kontextusában?

sobes.tech MI

Válasz az MI-től

A megszakítási token (Cancellation Token) a több szálú programozásban egy olyan objektum, amelyet az aszinkron vagy párhuzamos műveletek megszakításának koordinálására használnak.

Fő ötlet: egy szál (vagy komponens) kérheti egy művelet megszakítását, míg mások, akik végrehajtják ezt a műveletet, időszakosan ellenőrizhetik a token állapotát, és helyesen befejezhetik, ha a megszakítás kérésre került.

C#-ban ez a CancellationToken és CancellationTokenSource osztályokon keresztül valósul meg:

  • CancellationTokenSource létrehoz egy tokent, és jelezheti a megszakítást.
  • CancellationToken átadódik feladatoknak vagy metódusoknak, amelyek ellenőrizhetik az IsCancellationRequested értékét, és reagálhatnak a megszakításra.

Példa:

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

Task.Run(() => {
    while (!token.IsCancellationRequested)
    {
        // Munka végrehajtása
    }
    // Takarítás és befejezés
}, token);

// Valahol a kódban kérjük a megszakítást
cts.Cancel();

Ez lehetővé teszi hosszú vagy háttérben futó műveletek biztonságos és kontrollált megszakítását.