Есть такой код:
stream.ReadTimeout = 1000;
IAsyncResult result = stream.BeginRead(BufferIn, 0, 1, null, stream); (1)
result.AsyncWaitHandle.WaitOne(1000); (2)
stream.EndRead(result); (3)
Из stream должны поступить байты, но могут и не поступить. Если байты не поступают, то на (3) программа зависает на очень долго.
Я понимаю что EndRead ждет завершения асинхронной операции. Но после 1000 мс данные мне уже не актуальны.
MSDN говорить что нужно после BeginRead обязательно использовать EndRead. Как сделать чтобы (3) не зависало?