AnonymousPipeServerStream.Dispose-gedrag voor HandleInheritability.Inheritable
Om resourcelekken te voorkomen, moet uw code de AnonymousPipeServerStream.DisposeLocalCopyOfClientHandle() methode aanroepen nadat de client-ingang is doorgegeven aan het onderliggende proces. Het gedrag van AnonymousPipeServerStream.Dispose
is verbeterd om de kans op vergelijkbare lekken te verlagen voor gebruikers die niet bellen DisposeLocalCopyOfClientHandle().
Vorig gedrag
Voorheen werd de clienthandgreep die eigendom is van het AnonymousPipeServerStream exemplaar niet verwijderd, AnonymousPipeServerStream.Dispose
tenzij de handle helemaal niet beschikbaar was.
Nieuw gedrag
Vanaf .NET 8 wordt de client verwerkt die eigendom is van een server die is gemaakt voor out-of-proc-communicatie door AnonymousPipeServerStream.Dispose
als deze niet wordt weergegeven met behulp van de AnonymousPipeServerStream.ClientSafePipeHandle eigenschap. (U maakt een server voor out-of-proc-communicatie door aan de AnonymousPipeServerStream(PipeDirection, HandleInheritability) constructor door te gevenHandleInheritability.Inheritable.)
Versie geïntroduceerd
.NET 8 Preview 1
Type wijziging die fouten veroorzaken
Deze wijziging is een gedragswijziging.
Reden voor wijziging
Deze wijziging is geïntroduceerd om een veelvoorkomend resourcelek te voorkomen.
Aanbevolen actie
Als er een server is gemaakt voor out-of-proc-communicatie, moet u de clienthandgreep die als een tekenreeks wordt weergegeven niet opnieuw gebruiken via de GetClientHandleAsString() methode nadat het serverexemplaren zijn verwijderd.
Betrokken API's
- System.IO.Pipes.AnonymousPipeServerStream (specifiek,
AnonymousPipeServerStream.Dispose()
)