我有一個使用System.IO.Stream類進行通信的WebSocket服務器(每個連接有1個流)。服務器需要發送和接收(C#.NET 2.0),並且在接受連接時從生成的TcpClient創建Stream對象。C#System.IO.NetworkStream讀/寫競爭條件
所需的設置是我在一個處理所有傳入消息的線程上有Stream.Read。這是一個循環,其中Stream.Read()預期會阻止消息進入。
在另一個線程上,我需要偶爾使用Stream.Write()將消息發送回客戶端。
我的問題是,會不會有競爭條件?當Stream.Read()正在等待/讀取時我可能會混淆傳入的讀取數據時,是否有可能當我啓動Stream.Write()?還是流智能足以鎖定我的資源?是否有任何情況讓這兩個人同時坐在Read()和Write()上可能會破壞事物?