Показывать всплывающую подсказку, когда время XX:XX в C#

В моем проекте есть параметр строки с именем inHour, и в основной форме пользователь может изменить эту строку, которая представляет собой определенный час и минуту в следующем формате: чч:мм тт.

Теперь предположим, что я изменил час по умолчанию на 16:50. Когда реальное время достигает этой строки (с помощью DateTime.Now.ToString("hh:mm tt") == inHour), в системном трее отображается всплывающая подсказка (с помощью notifyIcon).

Таким образом, условие сравнения времени находится внутри потока, который запускается в FormLoad. Если время достигает 16:50. всплывающая подсказка отображается, но остается видимой, потому что поток не остановлен.

Я попытался объявить int равным 0, а затем установить его как i++, поэтому я использовал условие while, проверяя, что, хотя int i не равен 0, он проверит, пора ли показывать всплывающую подсказку, но если я установлю, то я 0 поток не будет продолжаться, и если я снова изменю час для проверки, он не будет работать, потому что я равен 0 и снова не установлен на бесконечность.

Итак, как я могу найти способ проверить время, показать всплывающую подсказку и начать заново весь процесс?

Заранее спасибо, ЦКБ


person ChrisCreateBoss    schedule 10.08.2015    source источник


Ответы (1)


Вместо проверки в цикле и связывания всего потока гораздо эффективнее использовать Timer, который срабатывает в нужное время. Этот вопрос в основном отвечает на ваш вопрос и содержит всю необходимую информацию.

person Nick Larsen    schedule 10.08.2015