Compartir a través de


Comportamiento AnonymousPipeServerStream.Dispose para HandleInheritability.Inheritable

Para evitar pérdidas de recursos, el código debe llamar al método AnonymousPipeServerStream.DisposeLocalCopyOfClientHandle() después de pasar el manipulador de cliente al proceso secundario. El comportamiento de AnonymousPipeServerStream.Dispose se ha mejorado para reducir la probabilidad de fugas similares para los usuarios que no llaman a DisposeLocalCopyOfClientHandle().

Comportamiento anterior

Anteriormente, AnonymousPipeServerStream.Dispose no eliminaba el manipulador de cliente propiedad de la instancia AnonymousPipeServerStream a menos que el manipulador no estuviera expuesto en absoluto.

Comportamiento nuevo

A partir de .NET 8, AnonymousPipeServerStream.Dispose elimina el manipulador de cliente que pertenece a un servidor que se creó para la comunicación fuera de proceso si no se expone mediante la propiedad AnonymousPipeServerStream.ClientSafePipeHandle. (Cree un servidor para la comunicación fuera del proceso pasando HandleInheritability.Inheritable al constructor AnonymousPipeServerStream(PipeDirection, HandleInheritability)).

Versión introducida

.NET 8 Preview 1

Tipo de cambio importante

Este es un cambio de comportamiento.

Motivo del cambio

Este cambio se introdujo para evitar una pérdida de recursos común.

Si se creó un servidor para la comunicación fuera del proceso, no reutilice el manipulador de cliente que se expone como una cadena mediante el método GetClientHandleAsString() después de eliminar la instancia del servidor.

API afectadas