我有一个很长的运行过程,我从一个线程开始。这会通过消息引发事件来说明它正在做什么。
如何使用这些消息更新屏幕上的标签? (如果标签更容易,则标签位于更新面板中。)
如果无法做到这一点,您可以建议更好的方式吗?
答案 0 :(得分:3)
页面请求完成后,服务器对请求浏览器没有明确的知识或连接,因此您无法轻松地将响应推送给用户。最简单的方法是使用标识符以某种方式保留消息,然后通过服务或CallBack函数公开消息,您可以使用Ajax计时器来调用服务并相应地更新UI。
答案 1 :(得分:1)
是的,你可以。创建一个具有参数的方法(要显示的消息字符串)。像:
private void SetLabelText(string message)
{
if (label.InvokeRequired)
{
Invoke(new MethodInvoker(() => SetLabelText(message)
));
}
else
{
label.Text = message;
}
}
在事件处理程序中使用此方法。
答案 2 :(得分:0)
使用后台工作程序更新UI非常有用 link text