IAsyncDisposable Interface

Définition

Fournit un mécanisme pour libérer des ressources non gérées de manière asynchrone.

public interface class IAsyncDisposable
public interface IAsyncDisposable
type IAsyncDisposable = interface
Public Interface IAsyncDisposable
Dérivé

Remarques

Dans .NET, les classes qui possèdent des ressources non managées implémentent généralement l' IDisposable interface pour fournir un mécanisme de libération synchrone des ressources non managées. Toutefois, dans certains cas, ils doivent fournir un mécanisme asynchrone pour libérer des ressources non managées en plus (ou à la place) de l’un d’eux synchrone. Le fait de fournir un tel mécanisme permet au consommateur d’effectuer des opérations de suppression gourmandes en ressources sans bloquer le thread principal d’une application GUI pendant une longue période.

La IAsyncDisposable.DisposeAsync méthode de cette interface retourne un ValueTask qui représente l’opération de suppression asynchrone. Les classes qui possèdent des ressources non managées implémentent cette méthode, et le consommateur de ces classes appelle cette méthode sur un objet lorsqu’elle n’est plus nécessaire.

Les méthodes Async sont utilisées conjointement avec les async await Mots clés et en C# et Visual Basic. Pour plus d’informations, consultez modèle de programmation asynchrone de tâche en C# ou programmation asynchrone avec Async et await (Visual Basic).

Utilisation d’un objet qui implémente IAsyncDisposable

Si votre application utilise un objet qui implémente IAsyncDisposable , vous devez appeler l’implémentation de l’objet une DisposeAsync fois que vous avez fini de l’utiliser. Pour vous assurer que les ressources sont libérées même en cas d’exception, placez le code qui utilise l' IAsyncDisposable objet dans l’instruction using (en C# à partir de la version 8,0) ou appelez la DisposeAsync méthode à l’intérieur finally d’une clause de l' try / finally instruction. Pour plus d’informations sur le try / finally modèle, consultez try-finally (C#) ou try... Catch... Instruction finally (Visual Basic).

Implémentation de IAsyncDisposable

Vous pouvez implémenter IAsyncDisposable dans les cas suivants :

  • Lors du développement d’un énumérateur asynchrone qui possède des ressources non managées. Les énumérateurs asynchrones sont utilisés avec la fonctionnalité de flux asynchrones C# 8,0. Pour plus d’informations sur les flux asynchrones, consultez Didacticiel : générer et consommer des flux asynchrones à l’aide de C# 8,0 et .net Core 3,0.

  • Lorsque votre classe possède des ressources non managées et que vous les libérez, vous avez besoin d’une opération d’e/s gourmande en ressources, par exemple le vidage du contenu d’une mémoire tampon intermédiaire dans un fichier ou l’envoi d’un paquet sur un réseau pour fermer une connexion.

Utilisez la DisposeAsync méthode pour effectuer le nettoyage nécessaire après avoir utilisé les ressources non managées, telles que la libération, la libération ou la réinitialisation des ressources non managées. Pour plus d’informations, consultez implémenter une méthode DisposeAsync.

Méthodes

DisposeAsync()

Exécute les tâches définies par l'application associées à la libération ou à la redéfinition asynchrone des ressources non managées.

Méthodes d’extension

ConfigureAwait(IAsyncDisposable, Boolean)

Configure la façon dont les attentes sur les tâches retournées à partir d’un élément supprimable asynchrone sont effectuées.

S’applique à