0

我的网站上有一个长时间运行的进程,因此我设置了一个线程,该线程在进程运行时为标签提供消息“更新中,请稍候..”。线程设置如下

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

while (t1.IsAlive)

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

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

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

4

2 回答 2

1

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

StatusLabel.Visible = true;
StatusLabel.Text = "Updating, please wait..";
t1.Start();
于 2013-08-29T12:15:05.683 回答
0

试试这个代码

StatusLabel.Visible = true;
StatusLabel.Text = "Updating, please wait..";
StatusLabel.Refresh();
于 2013-08-29T12:20:50.940 回答