2010-07-21 11 views
5

Sto tentando di inviare una stringa su una named pipe utilizzando StreamWriter, ma la classe StreamWriter offre solo operazioni sincrone. Posso usare il metodo BeginWrite della classe NamedPipeServerStream, ma mi chiedo perché non ci siano classi writer che consentirebbero operazioni asincrone. Mi manca qualcosa di ovvio?Utilizzo di pipe denominate in modo asincrono con StreamWriter

+0

I sapere che http://stackoverflow.com/questions/3015748/how-to-do-a-non-waiting-write-on-a-named-pipe-c question è molto simile, ma mi chiedo perché le classi di .NET Writer non offrire questa funzionalità. Mi manca qualche punto ovvio? – Lenik

risposta

2

Sarebbe molto più complicato rispetto ai flussi grezzi. Per i flussi grezzi, qualsiasi quantità di dati potrebbe venire in modo asincrono e il sistema passerà il buffer a te. Il lettore richiede la codifica dei caratteri che può trasformare diversi byte di dati grezzi in un singolo carattere Unicode. Non che ciò sia impossibile, le librerie di framework non la portano così lontano quindi dovrai farlo tu stesso.

(A seconda delle esigenze, creando un altro thread e di eseguire le operazioni in modo sincrono su di essa potrebbe rendere più facile per scrivere il programma. Si noti che la scalabilità sarebbe generalmente più alto quando si utilizza Begin/End asincrona.)

Problemi correlati