Как «отменить» UdpClient :: BeginReceive?
У меня есть поток, который сидит в ожидании UDP-сообщений от нескольких интерфейсов, используяUdpClient::BeginReceive
и обратный вызов, который вызываетUdpClient::EndReceive
забрать данные и передать их.
Если через 5 секунд я ничего не получаю, я возвращаюсь из функции, которая вызываетUdpClient::BeginReceive
так что процесс может быть отменен и выдать другую широковещательную рассылку, которая заставит внешних клиентов отправлять в ответах UDP. Если мы не отменяем, я звонюUdpClient::BeginReceive
Функция снова, чтобы проверить наличие новых данных.
Если клиент не получил никаких данных вовремя, есть ли способ отменить этот асинхронный запрос без вызоваEndReceive
какие блоки на неопределенный срок? У меня складывается впечатление, что оставить сотни запущенных асинхронных триггеров было бы плохой идеей.