我的网站运行时间很长,所以我设置了一个线程,在进程运行时为Label提供一条消息“正在更新,请稍候......”。线程设置如下
Thread t1 = new Thread(new ThreadStart(CreatePartsExcelFile));
t1.Start();
while (t1.IsAlive)
CreatePartsExcelFile方法运行,我确实考虑过使用MessageEventHandler但是我刚刚使用了代码
StatusLabel.Visible = true;
StatusLabel.Text = "Updating, please wait..";
该过程运行并完成正常,但消息从未出现,我做错了什么?
答案 0 :(得分:1)
您需要在线程外部运行这两行。您无法从后台线程访问该标签。通常,当处理来自后台线程的状态更新时,有一种更复杂的方法,因为你发送了多个,但在你的情况下,它非常简单(而且这不是一个刺戳,有一些关于简单性的说法),因为你只是想让用户知道你正在更新。所以,在开始之前设置这两行:
StatusLabel.Visible = true;
StatusLabel.Text = "Updating, please wait..";
t1.Start();
答案 1 :(得分:0)
试试这段代码
StatusLabel.Visible = true;
StatusLabel.Text = "Updating, please wait..";
StatusLabel.Refresh();