AnonymousPipeServerStream Klasse

Definition

Macht einen Datenstrom um eine anonyme Pipe verfügbar, die synchrone und asynchrone Lese- und Schreibvorgänge unterstützt.

public ref class AnonymousPipeServerStream sealed : System::IO::Pipes::PipeStream
public sealed class AnonymousPipeServerStream : System.IO.Pipes.PipeStream
type AnonymousPipeServerStream = class
    inherit PipeStream
Public NotInheritable Class AnonymousPipeServerStream
Inherits PipeStream
Vererbung
AnonymousPipeServerStream
Vererbung
AnonymousPipeServerStream

Beispiele

Im folgenden Beispiel wird eine Zeichenfolge aus einem übergeordneten Prozess mithilfe von anonymen Rohren an einen untergeordneten Prozess gesendet. In diesem Beispiel wird ein AnonymousPipeServerStream-Objekt in einem übergeordneten Prozess mit einem PipeDirection Wert von PipeDirection.Outerstellt. Außerdem wird ein AnonymousPipeClientStream-Objekt in einem untergeordneten Prozess mit einem PipeDirection Wert von PipeDirection.Inerstellt. Der übergeordnete Prozess sendet dann eine vom Benutzer bereitgestellte Zeichenfolge an den untergeordneten Prozess. Die Zeichenfolge wird in der Konsole angezeigt.

Dieses Beispiel ist für den Serverprozess bestimmt, der die AnonymousPipeServerStream Klasse verwendet. Das gesamte Codebeispiel, einschließlich des Codes für den Pipeclient und den Server, finden Sie unter How to: Use Anonymous Pipes for Local Interprocess Communication.

//<snippet01>
#using <System.dll>
#using <System.Core.dll>

using namespace System;
using namespace System::IO;
using namespace System::IO::Pipes;
using namespace System::Diagnostics;

ref class PipeServer
{
public:
    static void Main()
    {
        Process^ pipeClient = gcnew Process();

        pipeClient->StartInfo->FileName = "pipeClient.exe";

        AnonymousPipeServerStream^ pipeServer =
            gcnew AnonymousPipeServerStream(PipeDirection::Out,
            HandleInheritability::Inheritable);

        Console::WriteLine("[SERVER] Current TransmissionMode: {0}.",
            pipeServer->TransmissionMode);

        // Pass the client process a handle to the server.
        pipeClient->StartInfo->Arguments =
            pipeServer->GetClientHandleAsString();
        pipeClient->StartInfo->UseShellExecute = false;
        pipeClient->Start();

        pipeServer->DisposeLocalCopyOfClientHandle();

        try
        {
            // Read user input and send that to the client process.
            StreamWriter^ sw = gcnew StreamWriter(pipeServer);

            sw->AutoFlush = true;
            // Send a 'sync message' and wait for client to receive it.
            sw->WriteLine("SYNC");
            pipeServer->WaitForPipeDrain();
            // Send the console input to the client process.
            Console::Write("[SERVER] Enter text: ");
            sw->WriteLine(Console::ReadLine());
            sw->Close();
        }
        // Catch the IOException that is raised if the pipe is broken
        // or disconnected.
        catch (IOException^ e)
        {
            Console::WriteLine("[SERVER] Error: {0}", e->Message);
        }
        pipeServer->Close();
        pipeClient->WaitForExit();
        pipeClient->Close();
        Console::WriteLine("[SERVER] Client quit. Server terminating.");
    }
};

int main()
{
    PipeServer::Main();
}
//</snippet01>
//<snippet01>
using System;
using System.IO;
using System.IO.Pipes;
using System.Diagnostics;

class PipeServer
{
    static void Main()
    {
        Process pipeClient = new Process();

        pipeClient.StartInfo.FileName = "pipeClient.exe";

        using (AnonymousPipeServerStream pipeServer =
            new AnonymousPipeServerStream(PipeDirection.Out,
            HandleInheritability.Inheritable))
        {
            Console.WriteLine("[SERVER] Current TransmissionMode: {0}.",
                pipeServer.TransmissionMode);

            // Pass the client process a handle to the server.
            pipeClient.StartInfo.Arguments =
                pipeServer.GetClientHandleAsString();
            pipeClient.StartInfo.UseShellExecute = false;
            pipeClient.Start();

            pipeServer.DisposeLocalCopyOfClientHandle();

            try
            {
                // Read user input and send that to the client process.
                using (StreamWriter sw = new StreamWriter(pipeServer))
                {
                    sw.AutoFlush = true;
                    // Send a 'sync message' and wait for client to receive it.
                    sw.WriteLine("SYNC");
                    pipeServer.WaitForPipeDrain();
                    // Send the console input to the client process.
                    Console.Write("[SERVER] Enter text: ");
                    sw.WriteLine(Console.ReadLine());
                }
            }
            // Catch the IOException that is raised if the pipe is broken
            // or disconnected.
            catch (IOException e)
            {
                Console.WriteLine("[SERVER] Error: {0}", e.Message);
            }
        }

        pipeClient.WaitForExit();
        pipeClient.Close();
        Console.WriteLine("[SERVER] Client quit. Server terminating.");
    }
}
//</snippet01>
'<snippet01>
Imports System.IO
Imports System.IO.Pipes
Imports System.Diagnostics

Class PipeServer
    Shared Sub Main()
        Dim pipeClient As New Process()

        pipeClient.StartInfo.FileName = "pipeClient.exe"

        Using pipeServer As New AnonymousPipeServerStream(PipeDirection.Out, _
            HandleInheritability.Inheritable)

            Console.WriteLine("[SERVER] Current TransmissionMode: {0}.",
                pipeServer.TransmissionMode)

            ' Pass the client process a handle to the server.
            pipeClient.StartInfo.Arguments = pipeServer.GetClientHandleAsString()
            pipeClient.StartInfo.UseShellExecute = false
            pipeClient.Start()

            pipeServer.DisposeLocalCopyOfClientHandle()

            Try
                ' Read user input and send that to the client process.
                Using sw As New StreamWriter(pipeServer)
                    sw.AutoFlush = true
                    ' Send a 'sync message' and wait for client to receive it.
                    sw.WriteLine("SYNC")
                    pipeServer.WaitForPipeDrain()
                    ' Send the console input to the client process.
                    Console.Write("[SERVER] Enter text: ")
                    sw.WriteLine(Console.ReadLine())
                End Using
            Catch e As IOException
                ' Catch the IOException that is raised if the pipe is broken
                ' or disconnected.
                Console.WriteLine("[SERVER] Error: {0}", e.Message)
            End Try
        End Using

        pipeClient.WaitForExit()
        pipeClient.Close()
        Console.WriteLine("[SERVER] Client quit. Server terminating.")
    End Sub
End Class
'</snippet01>

Hinweise

Anonyme Rohre helfen bei der sicheren und sicheren Interprocess-Kommunikation zwischen untergeordneten und übergeordneten Prozessen. Die AnonymousPipeServerStream Klasse ermöglicht es einem übergeordneten Prozess, Informationen von einem untergeordneten Prozess zu senden oder zu empfangen.

Anonyme Rohre sind unbenannte, unidirektionale Rohre, die in der Regel Daten zwischen übergeordneten und untergeordneten Prozessen übertragen. Anonyme Rohre sind immer lokal; sie können nicht über ein Netzwerk verwendet werden. Ein PipeDirection Wert von InOut wird nicht unterstützt, da anonyme Rohre als unidirektional definiert sind.

Anonyme Rohre unterstützen den PipeTransmissionMode.Message Lesemodus nicht.

Die Clientseite einer anonymen Pipe muss über ein vom Server bereitgestelltes Pipehandle erstellt werden, indem die GetClientHandleAsString-Methode aufgerufen wird. Die Zeichenfolge wird dann beim Erstellen des Clientprozesses als Parameter übergeben. Aus dem Clientprozess wird sie dann als pipeHandleAsString-Parameter an den AnonymousPipeClientStream-Konstruktor übergeben.

Das AnonymousPipeServerStream-Objekt muss den Clienthandle mithilfe der DisposeLocalCopyOfClientHandle-Methode verwerfen, um benachrichtigt zu werden, wenn der Client beendet wird.

Konstruktoren

AnonymousPipeServerStream()

Initialisiert eine neue Instanz der AnonymousPipeServerStream Klasse.

AnonymousPipeServerStream(PipeDirection)

Initialisiert eine neue Instanz der AnonymousPipeServerStream Klasse mit der angegebenen Piperichtung.

AnonymousPipeServerStream(PipeDirection, HandleInheritability)

Initialisiert eine neue Instanz der AnonymousPipeServerStream Klasse mit der angegebenen Piperichtung und vererbbarkeitsmodus.

AnonymousPipeServerStream(PipeDirection, HandleInheritability, Int32)

Initialisiert eine neue Instanz der AnonymousPipeServerStream Klasse mit der angegebenen Piperichtung, dem Vererbbarkeitsmodus und der Puffergröße.

AnonymousPipeServerStream(PipeDirection, HandleInheritability, Int32, PipeSecurity)

Initialisiert eine neue Instanz der AnonymousPipeServerStream Klasse mit der angegebenen Piperichtung, dem Vererbbarkeitsmodus, der Puffergröße und der Pipesicherheit.

AnonymousPipeServerStream(PipeDirection, SafePipeHandle, SafePipeHandle)

Initialisiert eine neue Instanz der AnonymousPipeServerStream Klasse aus den angegebenen Pipehandles.

Eigenschaften

CanRead

Ruft einen Wert ab, der angibt, ob der aktuelle Datenstrom Lesevorgänge unterstützt.

(Geerbt von PipeStream)
CanSeek

Ruft einen Wert ab, der angibt, ob der aktuelle Datenstrom Suchvorgänge unterstützt.

(Geerbt von PipeStream)
CanTimeout

Ruft einen Wert ab, der bestimmt, ob der aktuelle Datenstrom Timeout ausführen kann.

(Geerbt von Stream)
CanWrite

Ruft einen Wert ab, der angibt, ob der aktuelle Datenstrom Schreibvorgänge unterstützt.

(Geerbt von PipeStream)
ClientSafePipeHandle

Ruft den sicheren Handle für das AnonymousPipeClientStream-Objekt ab, das derzeit mit dem AnonymousPipeServerStream -Objekt verbunden ist.

InBufferSize

Ruft die Größe des eingehenden Puffers für eine Pipe in Bytes ab.

(Geerbt von PipeStream)
IsAsync

Ruft einen Wert ab, der angibt, ob ein PipeStream -Objekt asynchron oder synchron geöffnet wurde.

(Geerbt von PipeStream)
IsConnected

Dient zum Abrufen oder Festlegen eines Werts, der angibt, ob ein PipeStream -Objekt verbunden ist.

(Geerbt von PipeStream)
IsHandleExposed

Ruft einen Wert ab, der angibt, ob ein Handle für ein PipeStream -Objekt verfügbar gemacht wird.

(Geerbt von PipeStream)
IsMessageComplete

Ruft einen Wert ab, der angibt, ob mehr Daten in der Nachricht vorhanden sind, die vom letzten Lesevorgang zurückgegeben wird.

(Geerbt von PipeStream)
Length

Ruft die Länge eines Datenstroms in Byte ab.

(Geerbt von PipeStream)
OutBufferSize

Ruft die Größe des ausgehenden Puffers für eine Pipe in Bytes ab.

(Geerbt von PipeStream)
Position

Dient zum Abrufen oder Festlegen der aktuellen Position des aktuellen Datenstroms.

(Geerbt von PipeStream)
ReadMode

Legt den Lesemodus für das AnonymousPipeServerStream-Objekt fest. Bei anonymen Rohren muss der Übertragungsmodus Bytewerden.

ReadTimeout

Dient zum Abrufen oder Festlegen eines Werts in Millisekunden, der bestimmt, wie lange der Datenstrom vor dem Timeout zu lesen versucht.

(Geerbt von Stream)
SafePipeHandle

Ruft den sicheren Handle für das lokale Ende der Pipe ab, die das aktuelle PipeStream -Objekt kapselt.

(Geerbt von PipeStream)
TransmissionMode

Ruft den Rohrübertragungsmodus ab, der von der aktuellen Rohrleitung unterstützt wird.

WriteTimeout

Dient zum Abrufen oder Festlegen eines Werts in Millisekunden, der bestimmt, wie lange der Datenstrom versucht, vor dem Timeout zu schreiben.

(Geerbt von Stream)

Methoden

BeginRead(Byte[], Int32, Int32, AsyncCallback, Object)

Startet einen asynchronen Lesevorgang.

(Geerbt von PipeStream)
BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

Startet einen asynchronen Schreibvorgang.

(Geerbt von PipeStream)
CheckPipePropertyOperations()

Überprüft, ob sich die Pipe in einem ordnungsgemäßen Zustand für das Abrufen oder Festlegen von Eigenschaften befindet.

(Geerbt von PipeStream)
CheckReadOperations()

Überprüft, ob sich die Rohre in einem verbundenen Zustand für Lesevorgänge befinden.

(Geerbt von PipeStream)
CheckWriteOperations()

Überprüft, ob sich die Pipe in einem verbundenen Zustand für Schreibvorgänge befindet.

(Geerbt von PipeStream)
Close()

Schließt den aktuellen Datenstrom und gibt alle Ressourcen (z. B. Sockets und Dateihandles) frei, die dem aktuellen Datenstrom zugeordnet sind. Anstatt diese Methode aufzurufen, stellen Sie sicher, dass der Datenstrom ordnungsgemäß verworfen ist.

(Geerbt von Stream)
CopyTo(Stream)

Liest die Bytes aus dem aktuellen Datenstrom und schreibt sie in einen anderen Datenstrom. Beide Datenströme werden um die Anzahl der kopierten Bytes erweitert.

(Geerbt von Stream)
CopyTo(Stream, Int32)

Liest die Bytes aus dem aktuellen Datenstrom und schreibt sie mithilfe einer angegebenen Puffergröße in einen anderen Datenstrom. Beide Datenströme werden um die Anzahl der kopierten Bytes erweitert.

(Geerbt von Stream)
CopyToAsync(Stream)

Liest die Bytes asynchron aus dem aktuellen Datenstrom und schreibt sie in einen anderen Datenstrom. Beide Datenströme werden um die Anzahl der kopierten Bytes erweitert.

(Geerbt von Stream)
CopyToAsync(Stream, CancellationToken)

Liest die Bytes asynchron aus dem aktuellen Datenstrom und schreibt sie mithilfe eines angegebenen Abbruchtokens in einen anderen Datenstrom. Beide Datenströme werden um die Anzahl der kopierten Bytes erweitert.

(Geerbt von Stream)
CopyToAsync(Stream, Int32)

Liest die Bytes asynchron aus dem aktuellen Datenstrom und schreibt sie mithilfe einer angegebenen Puffergröße in einen anderen Datenstrom. Beide Datenströme werden um die Anzahl der kopierten Bytes erweitert.

(Geerbt von Stream)
CopyToAsync(Stream, Int32, CancellationToken)

Liest asynchron die Bytes aus dem aktuellen Datenstrom und schreibt sie in einen anderen Datenstrom, wobei eine angegebene Puffergröße und ein Abbruchtoken verwendet wird. Beide Datenströme werden um die Anzahl der kopierten Bytes erweitert.

(Geerbt von Stream)
CreateObjRef(Type)

Erstellt ein Objekt, das alle relevanten Informationen enthält, die zum Generieren eines Proxys erforderlich sind, der für die Kommunikation mit einem Remoteobjekt verwendet wird.

(Geerbt von MarshalByRefObject)
CreateWaitHandle()
Veraltet.
Veraltet.
Veraltet.

Weist ein WaitHandle-Objekt zu.

(Geerbt von Stream)
Dispose()

Gibt alle vom Streamverwendeten Ressourcen frei.

(Geerbt von Stream)
Dispose(Boolean)

Gibt die nicht verwalteten Ressourcen frei, die von der PipeStream Klasse verwendet werden, und gibt optional die verwalteten Ressourcen frei.

(Geerbt von PipeStream)
DisposeAsync()

Gibt asynchron die nicht verwalteten Ressourcen frei, die vom Streamverwendet werden.

(Geerbt von Stream)
DisposeLocalCopyOfClientHandle()

Schließt die lokale Kopie des Handles des AnonymousPipeClientStream Objekts.

EndRead(IAsyncResult)

Beendet eine ausstehende asynchrone Leseanforderung.

(Geerbt von PipeStream)
EndWrite(IAsyncResult)

Beendet eine ausstehende asynchrone Schreibanforderung.

(Geerbt von PipeStream)
Equals(Object)

Bestimmt, ob das angegebene Objekt dem aktuellen Objekt entspricht.

(Geerbt von Object)
Finalize()

Gibt nicht verwaltete Ressourcen frei und führt weitere Bereinigungsvorgänge aus, bevor die AnonymousPipeServerStream Instanz von der Garbage Collection zurückgefordert wird.

Flush()

Löscht den Puffer für den aktuellen Datenstrom und bewirkt, dass alle gepufferten Daten auf das zugrunde liegende Gerät geschrieben werden.

(Geerbt von PipeStream)
FlushAsync()

Löscht asynchron alle Puffer für diesen Datenstrom und bewirkt, dass alle gepufferten Daten auf das zugrunde liegende Gerät geschrieben werden.

(Geerbt von Stream)
FlushAsync(CancellationToken)

Löscht den Puffer für den aktuellen Datenstrom asynchron und bewirkt, dass alle gepufferten Daten auf das zugrunde liegende Gerät geschrieben werden.

(Geerbt von PipeStream)
GetAccessControl()

Ruft ein PipeSecurity -Objekt ab, das die Zugriffssteuerungslisteneinträge (Access Control List, ACL) für die durch das aktuelle PipeStream -Objekt beschriebene Pipe kapselt.

(Geerbt von PipeStream)
GetClientHandleAsString()

Ruft das verbundene AnonymousPipeClientStream Objekthandle als Zeichenfolge ab.

GetHashCode()

Dient als Standardhashfunktion.

(Geerbt von Object)
GetLifetimeService()
Veraltet.

Ruft das aktuelle Lebensdauerdienstobjekt ab, das die Lebensdauerrichtlinie für diese Instanz steuert.

(Geerbt von MarshalByRefObject)
GetType()

Ruft die Type der aktuellen Instanz ab.

(Geerbt von Object)
InitializeHandle(SafePipeHandle, Boolean, Boolean)

Initialisiert ein PipeStream -Objekt aus dem angegebenen SafePipeHandle -Objekt.

(Geerbt von PipeStream)
InitializeLifetimeService()
Veraltet.

Ruft ein Lebensdauerdienstobjekt ab, um die Lebensdauerrichtlinie für diese Instanz zu steuern.

(Geerbt von MarshalByRefObject)
MemberwiseClone()

Erstellt eine flache Kopie der aktuellen Object.

(Geerbt von Object)
MemberwiseClone(Boolean)

Erstellt eine flache Kopie des aktuellen MarshalByRefObject-Objekts.

(Geerbt von MarshalByRefObject)
ObjectInvariant()
Veraltet.

Bietet Unterstützung für eine Contract.

(Geerbt von Stream)
Read(Byte[], Int32, Int32)

Liest einen Byteblock aus einem Datenstrom und schreibt die Daten an einen angegebenen Puffer, beginnend an einer angegebenen Position für eine angegebene Länge.

(Geerbt von PipeStream)
Read(Span<Byte>)

Liest eine Abfolge von Bytes aus dem aktuellen Datenstrom, schreibt sie in ein Bytearray und wechselt die Position innerhalb des Datenstroms um die Anzahl der gelesenen Bytes.

(Geerbt von PipeStream)
ReadAsync(Byte[], Int32, Int32)

Liest asynchron eine Abfolge von Bytes aus dem aktuellen Datenstrom und wechselt die Position innerhalb des Datenstroms um die Anzahl der gelesenen Bytes.

(Geerbt von Stream)
ReadAsync(Byte[], Int32, Int32, CancellationToken)

Liest asynchron eine Bytesequenz aus dem aktuellen Datenstrom in ein Bytearray ab einer angegebenen Position für eine angegebene Anzahl von Bytes, führt die Position innerhalb des Datenstroms um die Anzahl der gelesenen Bytes durch und überwacht Abbruchanforderungen.

(Geerbt von PipeStream)
ReadAsync(Memory<Byte>, CancellationToken)

Liest asynchron eine Abfolge von Bytes aus dem aktuellen Datenstrom, schreibt sie in einen Bytespeicherbereich, wechselt die Position innerhalb des Datenstroms um die Anzahl der gelesenen Bytes und überwacht Abbruchanforderungen.

(Geerbt von PipeStream)
ReadAtLeast(Span<Byte>, Int32, Boolean)

Liest mindestens eine Minimale Anzahl von Bytes aus dem aktuellen Datenstrom und wechselt die Position innerhalb des Datenstroms um die Anzahl der gelesenen Bytes.

(Geerbt von Stream)
ReadAtLeastAsync(Memory<Byte>, Int32, Boolean, CancellationToken)

Liest asynchron mindestens eine Mindestanzahl von Bytes aus dem aktuellen Datenstrom, wechselt die Position innerhalb des Datenstroms um die Anzahl der gelesenen Bytes und überwacht Abbruchanforderungen.

(Geerbt von Stream)
ReadByte()

Liest ein Byte aus einer Pfeife.

(Geerbt von PipeStream)
ReadExactly(Byte[], Int32, Int32)

Liest count Anzahl von Bytes aus dem aktuellen Datenstrom und wechselt die Position innerhalb des Datenstroms.

(Geerbt von Stream)
ReadExactly(Span<Byte>)

Liest Bytes aus dem aktuellen Datenstrom und wechselt die Position innerhalb des Datenstroms, bis die buffer gefüllt ist.

(Geerbt von Stream)
ReadExactlyAsync(Byte[], Int32, Int32, CancellationToken)

Liest asynchron count Anzahl von Bytes aus dem aktuellen Datenstrom, wechselt die Position innerhalb des Datenstroms und überwacht Abbruchanforderungen.

(Geerbt von Stream)
ReadExactlyAsync(Memory<Byte>, CancellationToken)

Liest asynchron Bytes aus dem aktuellen Datenstrom, wechselt die Position innerhalb des Datenstroms, bis die buffer gefüllt ist, und überwacht Abbruchanforderungen.

(Geerbt von Stream)
Seek(Int64, SeekOrigin)

Legt die aktuelle Position des aktuellen Datenstroms auf den angegebenen Wert fest.

(Geerbt von PipeStream)
SetAccessControl(PipeSecurity)

Wendet die durch ein PipeSecurity -Objekt angegebenen Zugriffssteuerungslisteneinträge (Access Control List, ACL) auf die durch das aktuelle PipeStream -Objekt angegebene Pipe an.

(Geerbt von PipeStream)
SetLength(Int64)

Legt die Länge des aktuellen Datenstroms auf den angegebenen Wert fest.

(Geerbt von PipeStream)
ToString()

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.

(Geerbt von Object)
WaitForPipeDrain()

Wartet auf das andere Ende der Pipe, um alle gesendeten Bytes zu lesen.

(Geerbt von PipeStream)
Write(Byte[], Int32, Int32)

Schreibt einen Byteblock mithilfe von Daten aus einem Puffer in den aktuellen Datenstrom.

(Geerbt von PipeStream)
Write(ReadOnlySpan<Byte>)

Schreibt eine Folge von Bytes in den aktuellen Datenstrom und wechselt die aktuelle Position innerhalb dieses Datenstroms um die Anzahl der geschriebenen Bytes.

(Geerbt von PipeStream)
WriteAsync(Byte[], Int32, Int32)

Schreibt asynchron eine Bytesequenz in den aktuellen Datenstrom und wechselt die aktuelle Position innerhalb dieses Datenstroms um die Anzahl der geschriebenen Bytes.

(Geerbt von Stream)
WriteAsync(Byte[], Int32, Int32, CancellationToken)

Schreibt asynchron eine angegebene Anzahl von Bytes aus einem Bytearray beginnend an einer angegebenen Position, wechselt die aktuelle Position innerhalb dieses Datenstroms um die Anzahl der geschriebenen Bytes und überwacht Abbruchanforderungen.

(Geerbt von PipeStream)
WriteAsync(ReadOnlyMemory<Byte>, CancellationToken)

Schreibt asynchron eine Bytesequenz in den aktuellen Datenstrom, wechselt die aktuelle Position innerhalb dieses Datenstroms um die Anzahl der geschriebenen Bytes und überwacht Abbruchanforderungen.

(Geerbt von PipeStream)
WriteByte(Byte)

Schreibt ein Byte in den aktuellen Datenstrom.

(Geerbt von PipeStream)

Erweiterungsmethoden

CopyToAsync(Stream, PipeWriter, CancellationToken)

Liest die Bytes asynchron aus dem Stream und schreibt sie mithilfe eines Abbruchtokens in das angegebene PipeWriter.

GetAccessControl(PipeStream)

Gibt die Sicherheitsinformationen eines Rohrdatenstroms zurück.

SetAccessControl(PipeStream, PipeSecurity)

Ändert die Sicherheitsattribute eines vorhandenen Pipestreams.

ConfigureAwait(IAsyncDisposable, Boolean)

Konfiguriert, wie auf die von einem asynchronen Einweg zurückgegebenen Aufgaben gewartet wird.

Gilt für: