Как «отменить» UdpClient :: BeginReceive?

У меня есть поток, который сидит в ожидании UDP-сообщений от нескольких интерфейсов, используяUdpClient::BeginReceive и обратный вызов, который вызываетUdpClient::EndReceive забрать данные и передать их.

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

Если клиент не получил никаких данных вовремя, есть ли способ отменить этот асинхронный запрос без вызоваEndReceive какие блоки на неопределенный срок? У меня складывается впечатление, что оставить сотни запущенных асинхронных триггеров было бы плохой идеей.

Ответы на вопрос(2)

Ваш ответ на вопрос