Я пробовал несколько решений с таймерами (пробовал все три класса таймеров), и ни одно из них не запускало событие Tick (истекшее) в этом конкретном месте. У меня есть многопоточное приложение WinForms. То, что мне нужно, кажется простым, но я потратил несколько дней на это и готов бросить полотенце.
Мне нужно отображать текущий отсчет во всплывающем окне, пока выполняется действие. Если прошло 90 секунд, а результаты не достигнуты (у меня есть флаг), выведите предупреждение, поэтому мне нужно точно обновить поток пользовательского интерфейса.
Я рассмотрел три различных класса таймеров, и ни один из них не работает для меня в этомконкретное место - их прошедшие или отмеченные события не запускаются. Я думаю, это потому, что у меня уже есть другой поток, который опрашивает последовательный порт, потому что, если я создаю фиктивную кнопку и привязываю таймер к событию Click, это нормально. Обратите внимание, что мне не нужен таймер для запуска внутри опроса последовательного порта, функциональность полностью отдельная.
Может кто-нибудь предложить какое-либо решение, которое может работать в этом случае?
Классы, которые я пробовал:
Windows.Forms.Timer
System.Timers.Timer
System.Threading.Timer