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

本文关键字:显示 消息 标签 线程 更新 运行 | 更新日期: 2023-09-27 18:29:25

我的网站中有一个长时间运行的进程,因此我设置了一个线程,在进程运行时提供一个带有消息"Updating,please wait.."的标签。线程设置如下

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

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

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

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

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

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

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

尝试此代码

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