Dela 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 förstörs AnonymousPipeServerStream.Dispose klienthandtaget som ägs av en server som har skapats för kommunikation utanför processen om det inte exponeras med hjälp av egenskapen AnonymousPipeServerStream.ClientSafePipeHandle. (Du skapar en server för utanför-process kommunikation genom att skicka HandleInheritability.Inheritable till konstruktorn AnonymousPipeServerStream(PipeDirection, HandleInheritability).)

Version lanserad

Förhandsversion 1 av .NET 8

Typ av brytande ändring

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

Orsak till ändring

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