I was wondering what happens if there are more than one thread waiting for data to be available using System.Net.Sockets.NetworkStream.Read:
numberOfBytesRead = myNetworkStream.Read(myReadBuffer, 0, myReadBuffer.Length);
where myNetworkStream is shared. When data is available, does only one thread see it or all the threads?
From the documentation:
So I would say behavior is undefined.