Share via


AnonymousPipeServerStream.Dispose-beteende för HandleInheritability.Inheritable

För att undvika resursläckor bör koden anropa AnonymousPipeServerStream.DisposeLocalCopyOfClientHandle() metoden efter att klienthandtaget har överförts till den underordnade processen. Beteendet AnonymousPipeServerStream.Dispose för har förbättrats för att minska risken för liknande läckor för användare som inte anropar DisposeLocalCopyOfClientHandle().

Tidigare beteende

Tidigare var klienthandtaget som ägs av instansen AnonymousPipeServerStream inte bortskaffat av AnonymousPipeServerStream.Dispose om inte handtaget inte exponerades alls.

Nytt beteende

Från och med .NET 8 bortskaffas AnonymousPipeServerStream.Dispose klienthandtaget som ägs av en server som har skapats för kommunikation som inte är tillgänglig om den inte exponeras med hjälp AnonymousPipeServerStream.ClientSafePipeHandle av egenskapen. (Du skapar en server för kommunikation som inte är tillgänglig genom att skicka HandleInheritability.Inheritable till AnonymousPipeServerStream(PipeDirection, HandleInheritability) konstruktorn.)

Version introducerad

Förhandsversion 1 av .NET 8

Typ av icke-bakåtkompatibel ändring

Den här ändringen är en beteendeförändring.

Orsak till ändringen

Den här ändringen infördes för att undvika en vanlig resursläcka.

Om en server har skapats för inaktiv kommunikation ska du inte återanvända klienthandtaget som exponeras som en sträng via GetClientHandleAsString() metoden när serverinstansen har tagits bort.

Berörda API:er