正在运行线程时更新..消息标签未显示

时间:2013-08-29 12:10:43

标签: c# .net multithreading visual-studio-2010

我的网站运行时间很长,所以我设置了一个线程,在进程运行时为Label提供一条消息“正在更新,请稍候......”。线程设置如下

Thread t1 = new Thread(new ThreadStart(CreatePartsExcelFile));
t1.Start();

while (t1.IsAlive)

CreatePartsExcelFile方法运行,我确实考虑过使用MessageEventHandler但是我刚刚使用了代码

StatusLabel.Visible = true;
StatusLabel.Text = "Updating, please wait..";

该过程运行并完成正常,但消息从未出现,我做错了什么?

2 个答案:

答案 0 :(得分:1)

您需要在线程外部运行这两行。您无法从后台线程访问该标签。通常,当处理来自后台线程的状态更新时,有一种更复杂的方法,因为你发送了多个,但在你的情况下,它非常简单(而且这不是一个刺戳,有一些关于简单性的说法),因为你只是想让用户知道你正在更新。所以,在开始之前设置这两行:

StatusLabel.Visible = true;
StatusLabel.Text = "Updating, please wait..";
t1.Start();

答案 1 :(得分:0)

试试这段代码

StatusLabel.Visible = true;
StatusLabel.Text = "Updating, please wait..";
StatusLabel.Refresh();