Udostępnij za pośrednictwem


Zachowanie AnonymousPipeServerStream.Dispose dla elementu HandleInheritability.Inheritable

Aby uniknąć wycieków zasobów, kod powinien wywołać metodę AnonymousPipeServerStream.DisposeLocalCopyOfClientHandle() po przekazaniu dojścia klienta do procesu podrzędnego. AnonymousPipeServerStream.Dispose Zachowanie funkcji zostało ulepszone, aby zmniejszyć prawdopodobieństwo podobnych przecieków dla użytkowników, którzy nie nazywają elementu DisposeLocalCopyOfClientHandle().

Poprzednie zachowanie

Wcześniej dojście klienta należące do AnonymousPipeServerStream wystąpienia nie zostało usunięte AnonymousPipeServerStream.Dispose , chyba że dojście nie zostało w ogóle ujawnione.

Nowe zachowanie

Począwszy od platformy .NET 8, dojście klienta należące do serwera utworzonego na potrzeby komunikacji poza proc jest usuwane AnonymousPipeServerStream.Dispose , jeśli nie jest uwidocznione za pomocą AnonymousPipeServerStream.ClientSafePipeHandle właściwości . (Serwer na potrzeby komunikacji poza proc tworzy się, przekazując HandleInheritability.Inheritable do konstruktora AnonymousPipeServerStream(PipeDirection, HandleInheritability) ).

Wprowadzona wersja

.NET 8 (wersja zapoznawcza 1)

Typ zmiany powodującej niezgodność

Ta zmiana jest zmianą behawioralną.

Przyczyna wprowadzenia zmiany

Wprowadzono tę zmianę, aby uniknąć typowego wycieku zasobów.

Jeśli serwer został utworzony na potrzeby komunikacji poza proc, nie używaj ponownie dojścia klienta uwidocznionego jako ciągu za pośrednictwem GetClientHandleAsString() metody po usunięciu wystąpienia serwera.

Dotyczy interfejsów API