Как предотвратить блокировку графического интерфейса? - PullRequest
0 голосов
/ 12 марта 2010

У меня есть таймер, который срабатывает каждые 3 секунды. Если таймер что-то нашел, появится окно сообщения. Затем таймер должен подождать 30 секунд, прежде чем он снова покажет окно сообщения (конечно, пользователь должен успеть среагировать).

Как я могу справиться с этим?

Я пробовал Thread.Sleep (30000), но, конечно, блоки графического интерфейса.

Моя другая идея - это второй таймер, который будет активирован после первых тиков и активирует первый таймер в тиковом методе.

Итак: тик t1 -> окно сообщения -> после щелчка -> включение t2 (тик 30 секунд) -> тик t2, включение t1

Но я думаю, что это не очень хорошая идея, есть ли лучший способ?

Ответы [ 2 ]

3 голосов
/ 12 марта 2010

Зависит от языка.

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

В случае .NET вы можете захотеть заглянуть в "BackgroundWorker "

1 голос
/ 12 марта 2010

Использование System.Windows.Forms.Timer

...