2010-07-21 4 views
5

Ich versuche, eine Zeichenfolge über eine Named Pipe mit StreamWriter zu senden, aber StreamWriter-Klasse bietet nur synchrone Operationen. Ich kann die BeginWrite-Methode der NamedPipeServerStream-Klasse verwenden, aber ich frage mich, warum es keine Writer-Klassen gibt, die asynchrone Operationen zulassen würden. Fehle ich etwas Offensichtliches?Verwenden von Named Pipes asynchron mit StreamWriter

+0

I wissen, dass http://stackoverflow.com/questions/3015748/how-to-do-a-non-waiting-write-on-a-named-pipe-c Frage ist sehr ähnlich, aber ich frage mich, warum .NET Writer-Klassen biete diese Funktionalität nicht an. Fehle ich einen offensichtlichen Punkt? – Lenik

Antwort

2

Es wäre wesentlich komplizierter als für die rohen Streams. Für die rohen Datenströme kann eine beliebige Datenmenge asynchron eingehen und das System übergibt Ihnen den Puffer. Der Leser benötigt eine Zeichencodierung, die mehrere Bytes Rohdaten in ein einziges Unicode-Zeichen umwandelt. Nicht, dass das unmöglich wäre, aber die Framework-Bibliotheken nehmen es nicht so weit, also musst du diese Arbeit selbst machen.

(Je nach Bedarf, einen weiteren Thread erstellen und die Vorgänge synchron auf sie durchführen könnte es einfacher machen Ihr Programm zu schreiben., Dass die Skalierbarkeit Hinweis der Regel höher sein würde, wenn Sie beginnen verwenden/Ende async.)