2010-07-21 11 views
5

Estoy intentando enviar una cadena a través de una canalización con nombre utilizando StreamWriter, pero la clase StreamWriter solo ofrece operaciones síncronas. Puedo usar el método BeginWrite de la clase NamedPipeServerStream, pero me pregunto por qué no hay clases de escritor que permitan operaciones asincrónicas. ¿Me estoy perdiendo algo obvio?Usar canalizaciones con nombre de manera asíncrona con StreamWriter

+0

I Sé que http://stackoverflow.com/questions/3015748/how-to-do-a-non-waiting-write-on-a-named-pipe-c question es muy similar, pero me pregunto por qué las clases .NET Writer no ofrecen esta funcionalidad ¿Me estoy perdiendo un punto obvio? – Lenik

Respuesta

2

Sería mucho más complicado que para las transmisiones sin formato. Para las transmisiones sin formato, cualquier cantidad de datos puede venir de manera asincrónica y el sistema simplemente le pasa el búfer. El lector requiere una codificación de caracteres que puede convertir varios bytes de datos sin formato en un único carácter Unicode. No es que esto sea imposible, las bibliotecas de frameworks simplemente no lo llevan tan lejos, así que tendrás que hacer este trabajo tú mismo.

(Dependiendo de sus necesidades, creando otro hilo y la realización de las operaciones sincrónicamente en él podría hacer más fácil para escribir su programa. Tenga en cuenta que la escalabilidad sería normalmente superior cuando se utiliza Comenzar/asíncrono Fin.)

Cuestiones relacionadas