使用命名管道与StreamWriter异步

时间:2010-07-21 22:40:37

标签: c# .net .net-3.5 named-pipes

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

1 个答案:

答案 0 :(得分:2)

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

(根据您的需要,创建另一个线程并在其上同步执行操作可能会使编写程序变得更容易。请注意,使用Begin / End异步时,可伸缩性通常会更高。)