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’interface IDisposable pour fournir un mécanisme permettant de libérer des ressources non managées de manière synchrone. Toutefois, dans certains cas, ils doivent fournir un mécanisme asynchrone permettant de libérer des ressources non managées en plus de (ou au lieu de) la ressource synchrone. La fourniture d’un tel mécanisme permet au consommateur d’effectuer des opérations d’élimination nécessitant beaucoup de ressources sans bloquer le thread principal d’une application d’interface graphique graphique 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 asynchrones sont utilisées conjointement avec les async mots clés et await dans C# et Visual Basic. Pour plus d’informations, consultez Le 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 DisposeAsync l’objet lorsque vous avez terminé 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’objet IAsyncDisposable dans l’instruction using (en C# à partir de la version 8.0) ou appelez la méthode à l’intérieur DisposeAsync d’une finally clause de l’instruction try/finally . Pour plus d’informations sur le try/finally modèle, consultez try-finally (C#) ou Essayer... Catch... Finally, instruction (Visual Basic).

Implémentation d’IAsyncDisposable

Vous pouvez implémenter IAsyncDisposable dans les situations suivantes :

  • 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 Tutoriel : 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 leur libération nécessite une opération d’E/S gourmande en ressources, telle que 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 à