IAsyncDisposable Interface
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Biedt een mechanisme voor het asynchroon vrijgeven van onbeheerde resources.
public interface class IAsyncDisposable
public interface IAsyncDisposable
type IAsyncDisposable = interface
Public Interface IAsyncDisposable
- Afgeleid
Opmerkingen
In .NET implementeren klassen die eigenaar zijn van onbeheerde resources meestal de IDisposable interface om een mechanisme te bieden voor het vrijgeven van onbeheerde resources synchroon. In sommige gevallen moeten ze echter een asynchroon mechanisme bieden voor het vrijgeven van niet-beheerde resources naast (of in plaats van) de synchrone. Door een dergelijk mechanisme te bieden, kan de consument resourcesintensieve verwijderingsbewerkingen uitvoeren zonder de hoofdthread van een GUI-toepassing gedurende lange tijd te blokkeren.
De IAsyncDisposable.DisposeAsync methode van deze interface retourneert een ValueTask die de asynchrone verwijderingsbewerking vertegenwoordigt. Klassen die eigenaar zijn van onbeheerde resources implementeren deze methode en de consument van deze klassen roept deze methode aan op een object wanneer deze niet meer nodig is.
De asynchrone methoden worden gebruikt in combinatie met de async trefwoorden en await trefwoorden in C# en Visual Basic. Zie het asynchrone programmeermodel van Task in C# of Asynchroon programmeren met Async en Await (Visual Basic) voor meer informatie.
Een object gebruiken dat IAsyncDisposable implementeert
Als uw toepassing gebruikmaakt van een object dat het IAsyncDisposable implementeert, moet u de DisposeAsync van het object aanroepen wanneer u klaar bent met het gebruik ervan. Als u wilt controleren of resources worden vrijgegeven, zelfs in geval van een uitzondering, plaatst u de code die het IAsyncDisposable object gebruikt in de using-instructie (vanaf versie 8.0) of roept u de DisposeAsync methode aan binnen een finally component van de try/finally instructie. Voor meer informatie over het try/finally-patroon, zie try-finally (C#) of Try...Catch...Finally Statement (Visual Basic).
IAsyncDisposable implementeren
U kunt in de volgende situaties implementeren IAsyncDisposable :
- Bij het ontwikkelen van een asynchrone enumerator die eigenaar is van onbeheerde resources. Asynchrone enumerators worden gebruikt met de functie C# 8.0 asynchrone streams. Zie zelfstudie: Asynchrone streams genereren en gebruiken met C# 8.0 en .NET Core 3.0 voor meer informatie over asynchrone streams.
- Wanneer uw klasse eigenaar is van onbeheerde resources en deze vrijgeeft, is een resource-intensieve I/O-bewerking vereist, zoals het leegmaken van de inhoud van een tussenliggende buffer in een bestand of het verzenden van een pakket via een netwerk om een verbinding te sluiten.
Gebruik de DisposeAsync methode om de benodigde opschoning uit te voeren nadat u de niet-beheerde resources hebt gebruikt, zoals het vrijmaken, vrijgeven of opnieuw instellen van de onbeheerde resources. Zie Een DisposeAsync-methode implementeren voor meer informatie.
Methoden
| Name | Description |
|---|---|
| DisposeAsync() |
Voert door de toepassing gedefinieerde taken uit die zijn gekoppeld aan het vrijmaken, vrijgeven of opnieuw instellen van onbeheerde resources asynchroon. |
Extensiemethoden
| Name | Description |
|---|---|
| ConfigureAwait(IAsyncDisposable, Boolean) |
Hiermee configureert u hoe wacht op de taken die worden geretourneerd op basis van een asynchroon wegwerp, worden uitgevoerd. |