2010-07-21 72 views
5

我想通过使用StreamWriter的命名管道发送字符串,但StreamWriter类只提供同步操作。我可以使用NamedPipeServerStream类的BeginWrite方法,但我想知道为什么没有允许异步操作的编写器类。我错过了明显的东西吗?与StreamWriter异步使用命名管道

+0

我知道http://stackoverflow.com/questions/3015748/how-to-do-a-non-waiting-write-on-a-named-pipe-c问题是非常相似,但我想知道为什么.NET编写器类不提供此功能。我错过了一些明显的观点吗? – Lenik 2010-07-21 22:49:00

回答

2

这比原始数据流要复杂得多。对于原始数据流,任何数量的数据都可能异步进入,系统会将缓冲区传递给您。阅读器需要字符编码,这可能会将几个字节的原始数据转换为单个Unicode字符。并不是说这不可能,框架库不会那么做,所以你需要自己做这个工作。

(根据您的需求,创建另一个线程,同步对其执行的操作可能会更容易地编写程序。请注意,可扩展性是通常较高,当您使用开始/结束异步)