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:
CancellationTokenSourcelétrehoz egy tokent, és jelezheti a megszakítást.CancellationTokenátadódik feladatoknak vagy metódusoknak, amelyek ellenőrizhetik azIsCancellationRequestedé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.