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