Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Anmärkning
Den här artikeln innehåller ytterligare kommentarer till referensdokumentationen för det här API:et.
I .NET implementerar IDisposable klasser som äger ohanterade resurser vanligtvis gränssnittet för att tillhandahålla en mekanism för att frigöra ohanterade resurser synkront. I vissa fall måste de dock tillhandahålla en asynkron mekanism för att frigöra ohanterade resurser utöver (eller i stället för) den synkrona. Genom att tillhandahålla en sådan mekanism kan konsumenten utföra resursintensiva bortskaffandeåtgärder utan att blockera huvudtråden i ett GUI-program under lång tid.
Metoden IAsyncDisposable.DisposeAsync för det här gränssnittet returnerar en ValueTask som representerar den asynkrona bortskaffandeåtgärden. Klasser som äger ohanterade resurser implementerar den här metoden, och användaren av dessa klasser anropar den här metoden på ett objekt när den inte längre behövs.
Asynkrona metoder används tillsammans med nyckelorden async och await i C# och Visual Basic. Mer information finns i The Task asynkrona programmeringsmodell i C# eller Asynkron programmering med Async och Await (Visual Basic).
Använda ett objekt som implementerar IAsyncDisposable
Om ditt program använder ett objekt som implementerar IAsyncDisposablebör du anropa objektets DisposeAsync implementering när du är klar med att använda det. Om du vill se till att resurser släpps även i händelse av ett undantag placerar du koden som använder IAsyncDisposable -objektet i instruktionen using (i C# från version 8.0) eller anropar DisposeAsync metoden i en finally sats i -instruktionen try/finally . För mer information om try/finally-mönstret, se try-finally (C#) eller Try...Catch...Finally-satsen (Visual Basic).
Implementera IAsyncDisposable
Du kan implementera IAsyncDisposable i följande situationer:
- När du utvecklar en asynkron uppräknare som äger ohanterade resurser. Asynkrona uppräknare används med C# 8.0-funktionen async streams. Mer information om asynkrona strömmar finns i Självstudie: Generera och använda asynkrona strömmar med C# 8.0 och .NET Core 3.0.
- När klassen äger ohanterade resurser och släpper dem krävs en resursintensiv I/O-åtgärd, till exempel att rensa innehållet i en mellanliggande buffert i en fil eller skicka ett paket via ett nätverk för att stänga en anslutning.
DisposeAsync Använd metoden för att utföra den rensning som krävs när du har använt ohanterade resurser, till exempel frigöra, frigöra eller återställa ohanterade resurser. Mer information finns i Implementera en DisposeAsync-metod.