Hirdetés

2024. május 27., hétfő

Gyorskeresés

Hozzászólások

(#9244) joysefke válasza coco2 (#9243) üzenetére


joysefke
veterán
LOGOUT blog

Nem értem hogy mi a probléma meg milyen token referenciáról beszélsz.

A token egy struct, ami tartalmazza az őt létrehozó CTS referenciáját. Te ezt nem látod, mivel a token structon a cts-re mutató referencia nem publikus. (pont ez a pattern lényege, hogy ne lehessen össze vissza cancellelni csupán a cts birtokában)

https://github.com/dotnet/runtime/blob/master/src/libraries/System.Private.CoreLib/src/System/Threading/CancellationToken.cs 35-ik sor...

A cancel pedig kétféle módon propagálódik:
1, Te manuálisan a saját magad függvényében ellenőrzöd, hogy történt-e cancel:
bool token.IsCancellationRequested vagy
void token.ThrowIfCancellationRequested()

2, Valamelyik framework API akinek Task létrehozásakor átadtad a tokent ellenőrzi a token állapotát és saját maga rakja az általa felügyelt Task állapotát Cancelled-re. A TaskFactory gondolom egy ilyen valami. (nem ismerem a TaskFactory-t)

[ Szerkesztve ]

Copyright © 2000-2024 PROHARDVER Informatikai Kft.