Partilhar via


AnonymousPipeServerStream.Dispose comportamento para HandleInheritability.Inheritable

Para evitar vazamentos de recursos, seu código deve chamar o AnonymousPipeServerStream.DisposeLocalCopyOfClientHandle() método depois de passar o identificador do cliente para o processo filho. O comportamento do AnonymousPipeServerStream.Dispose foi melhorado para diminuir a chance de vazamentos semelhantes para usuários que não ligam DisposeLocalCopyOfClientHandle().

Comportamento anterior

Anteriormente, o identificador do cliente de propriedade da AnonymousPipeServerStream instância não era descartado AnonymousPipeServerStream.Dispose , a menos que o identificador não fosse exposto.

Novo comportamento

A partir do .NET 8, o identificador de cliente de propriedade de um servidor que foi criado para comunicação fora do procedimento é descartado por AnonymousPipeServerStream.Dispose se não for exposto usando a AnonymousPipeServerStream.ClientSafePipeHandle propriedade. (Você cria um servidor para comunicação fora do proc passando HandleInheritability.Inheritable para o AnonymousPipeServerStream(PipeDirection, HandleInheritability) construtor.)

Versão introduzida

.NET 8 Visualização 1

Tipo de mudança de rutura

Esta mudança é uma mudança comportamental.

Razão para a alteração

Esta alteração foi introduzida para evitar uma fuga comum de recursos.

Se um servidor foi criado para comunicação fora do processo, não reutilize o identificador do cliente exposto como uma cadeia de caracteres por meio do GetClientHandleAsString() método depois que a instância do servidor tiver sido descartada.

APIs afetadas