Изменить текст метки после Thread.Sleep - PullRequest
0 голосов
/ 20 июля 2011

В моей школе работает система входа в систему, и когда ученик входит в систему, он показывает приветственное сообщение, и через 5 секунд это приветственное сообщение стирается и заменяется следующим: «Пожалуйста, протрите свою студенческую карточку».У меня запущена нить сна.Я хочу, чтобы ярлык приветствия был сброшен и сказал «Пожалуйста, проведите по вашей идентификационной карте» после завершения спящего потока, но он этого не сделает.Любая помощь?Я иду об этом правильным путем?Спасибо.

Ответы [ 2 ]

2 голосов
/ 20 июля 2011

Вы не предоставили никаких подробностей, поэтому нам нужно угадать точную причину проблемы.Я собираюсь предположить, что вы используете C # в Windows.

Я предполагаю, что вы пытаетесь выполнить код пользовательского интерфейса из рабочего потока, что является ошибкой.Код пользовательского интерфейса должен выполняться в главном потоке.

Хотя это может быть решено с помощью Control.Invoke, гораздо лучший подход - избегать потоков, использовать таймер для 5-секундного ожидания и выполнить обновление интерфейсаосновная нить.

1 голос
/ 20 июля 2011

Какой язык? Какой у тебя код?

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

...