2010-07-21 73 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字符。並不是說這不可能,框架庫不會那麼做,所以你需要自己做這個工作。

(根據您的需求,創建另一個線程,同步對其執行的操作可能會更容易地編寫程序。請注意,可擴展性是通常較高,當您使用開始/結束異步)