Здравствуйте. Задача совершенно банальная, но раньше я не сталкивался с подобным, а гугл совершенно ничем не помог. Не нашел ничего даже близкого к теме моего вопроса.
На руках есть "самоделка" которая раз в минуту присылает данные по UDP, я отображаю эти данные на экране. Как правильно на C# "отловить" момент если спустя минуту после приема данных мне не пришли новые? Т.е. в нить работы с UDP пришли данные, я их проанализировал, вызвал событие (передав ему данные для отображения), обработчик события отобразил данные на экран, через минуту все повторяется, но если минута прошла, а новых данных нет - как "отловить данную ситуацию"?
UdpClient receivingUdpClient = new UdpClient(localPort);
IPEndPoint RemoteIpEndPoint = null;
while (true)
{
byte[] receiveBytes = receivingUdpClient.Receive(ref RemoteIpEndPoint);
// анализ данных и вызов события OnDataReceived, обработчик которого выводит данные на экран
}
PS: мне видится решение в виде BackgroundWorker с бесконечным циклом и перезаписыванием переменной со временем и ежесекундной проверкой, но мне кажется это наихудший вариант из возможных. Если ли более правильный вариант?