IAsyncDisposable Interface

Définition

Fournit un mécanisme pour libérer des ressources non gérées de manière asynchrone.Provides a mechanism for releasing unmanaged resources asynchronously.

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.In .NET, classes that own unmanaged resources usually implement the IDisposable interface to provide a mechanism for releasing unmanaged resources synchronously. 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.However, in some cases they need to provide an asynchronous mechanism for releasing unmanaged resources in addition to (or instead of) the synchronous one. 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.Providing such a mechanism enables the consumer to perform resource-intensive dispose operations without blocking the main thread of a GUI application for a long time.

La IAsyncDisposable.DisposeAsync méthode de cette interface retourne un ValueTask qui représente l’opération de suppression asynchrone.The IAsyncDisposable.DisposeAsync method of this interface returns a ValueTask that represents the asynchronous dispose operation. 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.Classes that own unmanaged resources implement this method, and the consumer of these classes calls this method on an object when it is no longer needed.

Les méthodes Async sont utilisées conjointement avec les async await Mots clés et en C# et Visual Basic.The async methods are used in conjunction with the async and await keywords in C# and Visual Basic. Pour plus d’insformation, consultez le modèle de programmation asynchrone de tâches en C# ou programmation asynchrone avec Async et await (Visual Basic).For more insformation, see The Task asynchronous programming model in C# or Asynchronous Programming with Async and Await (Visual Basic).

Utilisation d’un objet qui implémente IAsyncDisposableUsing an object that implements 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.If your application uses an object that implements IAsyncDisposable, you should call the object's DisposeAsync implementation when you are finished using it. 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.To make sure resources are released even in case of an exception, put the code that uses the IAsyncDisposable object into the using statement (in C# beginning from version 8.0) or call the DisposeAsync method inside a finally clause of the try/finally statement. Pour plus d’informations sur le try / finally modèle, consultez try-finally (C#) ou try... Catch... Instruction finally (Visual Basic).For more information about the try/finally pattern, see try-finally (C#) or Try...Catch...Finally Statement (Visual Basic).

Implémentation de IAsyncDisposableImplementing IAsyncDisposable

Vous pouvez implémenter IAsyncDisposable dans les cas suivants :You might implement IAsyncDisposable in the following situations:

  • Lors du développement d’un énumérateur asynchrone qui possède des ressources non managées.When developing an asynchronous enumerator that owns unmanaged resources. Les énumérateurs asynchrones sont utilisés avec la fonctionnalité de flux asynchrones C# 8,0.Asynchronous enumerators are used with the C# 8.0 async streams feature. 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.For more information about async streams, see Tutorial: Generate and consume async streams using C# 8.0 and .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.When your class owns unmanaged resources and releasing them requires a resource-intensive I/O operation, such as flushing the contents of an intermediate buffer into a file or sending a packet over a network to close a connection.

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.Use the DisposeAsync method to perform whatever cleanup is necessary after using the unmanaged resources, such as freeing, releasing, or resetting the unmanaged resources. Pour plus d’informations, consultez implémenter une méthode DisposeAsync.For more information, see Implement a DisposeAsync method.

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.Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources asynchronously.

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.Configures how awaits on the tasks returned from an async disposable are performed.

S’applique à