Partage via


Comportement d’AnonymousPipeServerStream.Dispose pour HandleInheritability.Inheritable

Pour éviter les fuites de ressources, votre code doit appeler la méthode AnonymousPipeServerStream.DisposeLocalCopyOfClientHandle() après avoir transmis le handle client au processus enfant. Le comportement de AnonymousPipeServerStream.Dispose a été amélioré pour réduire le risque de fuites similaires pour les utilisateurs qui n’appellent pas DisposeLocalCopyOfClientHandle().

Comportement précédent

Auparavant, le handle client appartenant à l’instance AnonymousPipeServerStream n’était pas supprimé par AnonymousPipeServerStream.Dispose, sauf si le handle n’était pas été exposé du tout.

Nouveau comportement

À compter de .NET 8, le handle client appartenant à un serveur créé pour la communication hors processus est supprimé par AnonymousPipeServerStream.Dispose s’il n’est pas exposé à l’aide de la propriété AnonymousPipeServerStream.ClientSafePipeHandle. (Vous créez un serveur pour la communication hors processus en passant HandleInheritability.Inheritable au constructeur AnonymousPipeServerStream(PipeDirection, HandleInheritability).)

Version introduite

.NET 8 Préversion 1

Type de changement cassant

Ce changement est un changement de comportement.

Raison du changement

Cette modification a été introduite pour éviter une fuite de ressources courante.

Si un serveur a été créé pour la communication hors processus, ne réutilisez pas le handle client exposé en tant que chaîne via la méthode GetClientHandleAsString() après la suppression de l’instance de serveur.

API affectées