在Thread.Sleep之后更改标签文本

时间:2011-07-20 05:00:06

标签: multithreading wait

我的学校有一个登录系统,当学生登录时,会显示一条欢迎信息,5秒后,这条欢迎信息将被删除,取而代之的是“请刷你的学生卡”。我有一个睡眠线程运行。我希望欢迎标签重置为在睡眠线程完成后说“请刷你的身份证”,但它不会这样做。有帮助吗?我是以正确的方式来做这件事的吗?谢谢。

2 个答案:

答案 0 :(得分:2)

您尚未提供任何详细信息,因此我们需要猜测问题的确切原因。我将假设你在Windows上使用C#。

我猜你是在尝试从工作线程执行用户界面代码,这是一个错误。用户界面代码应该在主线程中运行。

虽然这可以通过Control.Invoke来解决,但更好的方法是避免任何线程,使用计时器进行5秒等待并在主线程中执行UI更新。

答案 1 :(得分:1)

哪种语言? 您的代码是什么?

您还可以使用计时器,并在计时器滴答时为标签指定新文本。