SOCKET中Read阻塞后如何超时

SOCKET中Read阻塞后怎么超时?
在send一条消息后,我们需要read来等待另一端的反馈
可是如果另一端迟迟不反馈,我们就得有个超时机制吧
现在好像NetworkStream.Read(byte,0,255)就是一个阻塞的。
怎么来避免这样无休止的阻塞呢?
------解决方案--------------------
NetworkStream.ReadTimeout = 2000;

这样2秒后没有数据返回自动进入catch