Freigeben über


„AnonymousPipeServerStream.Dispose“-Verhalten für „HandleInheritability.Inheritable“

Um Ressourcenverluste zu vermeiden, sollte Ihr Code die AnonymousPipeServerStream.DisposeLocalCopyOfClientHandle()-Methode aufrufen, nachdem das Clienthandle an den untergeordneten Prozess übergeben wurde. Das Verhalten von AnonymousPipeServerStream.Dispose wurde verbessert, um die Wahrscheinlichkeit ähnlicher Verluste für Benutzer zu verringern, die DisposeLocalCopyOfClientHandle() nicht aufrufen.

Vorheriges Verhalten

Zuvor wurde das Clienthandle, das der AnonymousPipeServerStream-Instanz gehört, nicht von AnonymousPipeServerStream.Dispose verworfen, es sei denn, das Handle wurde gar nicht verfügbar gemacht.

Neues Verhalten

Ab .NET 8 wird das Clienthandle, das einem Server gehört, der für die Out-of-Proc-Kommunikation erstellt wurde, von AnonymousPipeServerStream.Dispose verworfen, wenn es nicht mithilfe der AnonymousPipeServerStream.ClientSafePipeHandle-Eigenschaft verfügbar gemacht wird. (Einen Server für die Out-of-Proc-Kommunikation erstellen Sie, indem Sie HandleInheritability.Inheritable an den AnonymousPipeServerStream(PipeDirection, HandleInheritability)-Konstruktor übergeben.)

Eingeführt in Version

.NET 8 Preview 1

Typ des Breaking Changes

Diese Änderung ist eine Verhaltensänderung.

Grund für die Änderung

Diese Änderung wurde eingeführt, um häufige Ressourcenverluste zu vermeiden.

Wenn ein Server für die Out-of-Proc-Kommunikation erstellt wurde, verwenden Sie das Clienthandle nicht wieder, das über die GetClientHandleAsString()-Methode als Zeichenfolge verfügbar gemacht wird, nachdem die Serverinstanz verworfen wurde.

Betroffene APIs