Я пишу клиентскую программу, которая использует Sockets. Я хотел бы, чтобы клиент получал асинхронно, ЕСЛИ он ожидает ответа, и в этом случае я хотел бы получать синхронно.
Моя текущая проблема заключается в том, что из-за того, что я должен сделать вызов socket.BeginReceive, который ждет, пока в буфере не будет данных, асинхронный вызов всегда происходит до вызова синхронизации.
Как я могу временно остановить выполнение BeginReceive? Есть ли способ вызвать EndReceive, и после того, как я закончу получать синхронно, я смогу продолжать получать асинхронно?