Networkstream.Read()
スレッドをブロックする方法を止めたいと思います。 NetworkStream.Read()
がサーバーからのデータを待っている別のスレッドがあります。ユーザーが何らかのデータをサーバーに送信するボタンを押すと仮定します。しかし、NetworkStream.Write()
に電話することはできませんが、データを待っている他のスレッドにはNetworkStream.Read()
があります。私は毎回NetworkStream
をロックすることができますが、NetworkStream.Read()
はスレッドをブロックしますので、少なくとも1バイト読み込むまでデータを送信することはできません。c#NetworkStream write()とread()
5
A
答えて
2
あなたはで説明したように、非ブロッキングは読み出し動作を使用する必要があります:http://msdn.microsoft.com/en-us/library/system.net.sockets.networkstream.beginread.aspx
0
NetworkStreamクラスは、ブロックモードでストリームソケットを介してデータを送受信するための方法を提供します。ノンブロッキングソケットに対してブロックの詳細については、Using an Asynchronous Client Socket
7
あなたはNetworkStreamのインスタンス上で同時に行うことができるMSDN docs
読むのドキュメントに記載されているように同時に両方
read
とwrite
を発行し、操作を書くことができます見ます同期の必要なしにクラスを作成できます。書き込み操作のための1つのユニークなスレッドと読み取り操作のための1つのユニークなスレッドが存在する限り、読み取りスレッドと書き込みスレッドの間に相互干渉はなく、同期は必要ありません。
2
NetworkStream.DataAvailableプロパティは、ある期間で照会して、それが真である場合にのみ読み取ることができます。 "DataAvailableがtrueの場合、Read呼び出しはすぐに戻ります。"だからストリームをブロックしません。
関連する問題
- 1. Q_PROPERTY:MEMBER対READ/WRITE
- 2. Plist Read and Write iPhone
- 3. GAE Memcache Read \ Writeの問題
- 4. cファイルへのread()とwrite()の内容のプログラミング
- 5. read-process-writeの最適なバッファサイズ
- 6. .read .write jQueryの.replace文字列要素
- 7. open/read/writeとfopen/fread/writeを使用する必要があります
- 8. WRITEとREADの間違いは何ですか?
- 9. posix C write()とスレッドセーフ
- 10. write()とread()sys呼び出しの間の混乱
- 11. `net.Pipe()`の `Read`と` Write`を正しく書く方法
- 12. C#AnyCPUとRead/WriteProcessMemory
- 13. Write-Once + Read-Numerous MapはJavaでですか?
- 14. もっとエレガントで効率的な方法ですか? (XML/Linq/Read&Write)
- 15. Spark SQL - シーケンスまたはパイプラインでREADとWRITEを実行しますか?
- 16. write返り値c
- 17. C++のifstream :: read()とCの配列
- 18. C#read unicode?
- 19. C#NetworkStream/TCPClientを介したビデオストリーミング
- 20. C++ read()の問題
- 21. c#read Byte [] right justify
- 22. c#read DataSet子テーブル
- 23. read()、write()、open()を使ってファイルの内容を別のものにコピーする
- 24. スレッド "main"の例外java.security.AccessControlException:アクセスが拒否されました(java.util.PropertyPermission * read、write)
- 25. Read Write javascriptまたはjqueryで外部ファイルを上書きする
- 26. カスタムRead()およびWrite()機能を使用してFileStreamを装飾
- 27. lseek()read()とwrite()を使ってファイルを操作するのに問題があります
- 28. std :: wfstreamを参照渡しできますか?write()とread()を正しく使用できますか?
- 29. write c#抽象クラスのインライン実装?
- 30. Write-HostとWrite-OutputのPowerShellの違いは?