IAsyncDisposable.DisposeAsync Metódus

Definíció

A nem felügyelt erőforrások aszinkron felszabadításával, felszabadításával vagy alaphelyzetbe állításával kapcsolatos alkalmazásalapú feladatokat hajt végre.

public:
 System::Threading::Tasks::ValueTask DisposeAsync();
public System.Threading.Tasks.ValueTask DisposeAsync();
abstract member DisposeAsync : unit -> System.Threading.Tasks.ValueTask
Public Function DisposeAsync () As ValueTask

Válaszok

Az aszinkron elidegenítési műveletet képviselő feladat.

Megjegyzések

Ezzel a módszerrel aszinkron módon zárhatja be vagy szabadíthatja fel a nem felügyelt erőforrásokat, például a fájlokat, streameket és leírókat, amelyeket az ezt az interfészt megvalósító osztály egy példánya tárol. Ezzel a módszerrel ahelyett IDisposable.Dispose , hogy lehetővé teszi, hogy erőforrás-igényes ártalmatlanítási műveletet hajtson végre anélkül, hogy hosszú ideig blokkolnák a grafikus felhasználói felületű alkalmazások fő szálát.

Warning

Ha olyan osztályt használ, amely implementálja az IAsyncDisposable interfészt, akkor az osztály használatának befejezésekor hívja meg annak implementációját DisposeAsync . További információkért tekintse meg a témakör "Az IAsyncDisposable-t megvalósító objektum használata" című szakaszát IAsyncDisposable .

A metódus megvalósításakor győződjön meg arról, hogy az összes tárolt erőforrás felszabadítható a hívás elszigetelési hierarchián keresztüli propagálásával. Ha például egy A objektum lefoglal egy B objektumot, a B objektum pedig egy C objektumot foglal le, akkor az A implementációjának DisposeAsync a B-t kell meghívnia DisposeAsync , amelynek viszont C-t kell hívnia DisposeAsync . Az objektumnak az DisposeAsync alaposztály metódusát is meg kell hívnia, ha az alaposztály implementálva van IAsyncDisposable.

Ha egy objektum metódusát DisposeAsync többször hívják meg, az objektumnak figyelmen kívül kell hagynia az első utáni összes hívást, és szinkron módon kell visszaadnia a sikeresen befejezett ValueTaskműveletet. Az objektum nem hozhat kivételt, ha a DisposeAsync metódust többször is meghívják. Az erőforrások már elidegenítésének időpontjától DisposeAsync eltérő példánymetelyek is eldobhatók ObjectDisposedException .

A következőre érvényes: