IAsyncDisposable Interfész
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
A nem felügyelt erőforrások aszinkron felszabadítási mechanizmusát biztosítja.
public interface class IAsyncDisposable
public interface IAsyncDisposable
type IAsyncDisposable = interface
Public Interface IAsyncDisposable
- Származtatott
Megjegyzések
A .NET-ben a nem felügyelt erőforrásokat tartalmazó osztályok általában implementálják az IDisposable interfészt, hogy szinkron módon oldják fel a nem felügyelt erőforrásokat. Bizonyos esetekben azonban a szinkron helyett (vagy helyett) aszinkron mechanizmust kell biztosítaniuk a nem felügyelt erőforrások felszabadításához. Az ilyen mechanizmus lehetővé teszi a fogyasztó számára, hogy erőforrás-igényes ártalmatlanítási műveleteket hajtson végre anélkül, hogy hosszú ideig blokkolnák a grafikus felhasználói felületű alkalmazások fő szálát.
Ennek az interfésznek a IAsyncDisposable.DisposeAsync metódusa egy ValueTask értéket ad vissza, amely az aszinkron eltávolítási műveletet képviseli. A nem felügyelt erőforrásokat tartalmazó osztályok implementálják ezt a módszert, és az osztályok felhasználója meghívja ezt a metódust egy objektumra, amikor már nincs rá szükség.
Az aszinkron metódusok a C# és async a await Visual Basic kulcsszavaival együtt használatosak. További információ: A feladat aszinkron programozási modellje C# vagyAszinkron programozás Async és Await használatával (Visual Basic).
Az IAsyncDisposable-t implementáló objektum használata
Ha az alkalmazás olyan IAsyncDisposable-t implementáló objektumot használ, a használat befejezésekor meg kell hívnia az objektum DisposeAsync implementációját. Annak érdekében, hogy az erőforrások kivétel esetén is felszabaduljanak, helyezze az objektumot használó IAsyncDisposable kódot a használati utasításba (a 8.0-s verziótól kezdve C#-ban), vagy hívja meg a DisposeAsync metódust az finallytry/ utasítás záradékában.finally A mintával kapcsolatos további információkért lásd: try/finallytry-finally (C#) vagy Try... Catch... Finally utasítás (Visual Basic).
IAsyncDisposable implementálása
A következő helyzetekben implementálhatja IAsyncDisposable a következőket:
- A nem felügyelt erőforrásokat birtokló aszinkron enumerátor fejlesztésekor. Az aszinkron enumerátorok a C# 8.0 aszinkron streamek funkcióval használhatók. Az aszinkron streamekről további információt a C# 8.0 és a .NET Core 3.0 használatával készült aszinkron streamek létrehozása és felhasználása című oktatóanyagban talál.
- Ha az osztály nem felügyelt erőforrásokat birtokol, és azok felszabadításához erőforrás-igényes I/O-művelet szükséges, például egy köztes puffer tartalmának kiürítése egy fájlba, vagy csomag küldése hálózaton keresztül egy kapcsolat bezárásához.
A metódussal elvégezheti a DisposeAsync nem felügyelt erőforrások használata után szükséges tisztítást, például a nem felügyelt erőforrások felszabadítását, felszabadítását vagy alaphelyzetbe állítását. További információ: DisposeAsync metódus implementálása.
Metódusok
| Name | Description |
|---|---|
| DisposeAsync() |
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. |
Bővítő metódusok
| Name | Description |
|---|---|
| ConfigureAwait(IAsyncDisposable, Boolean) |
Konfigurálja, hogy az aszinkron eldobható feladatok hogyan lesznek végrehajtva. |