【发布时间】:2010-11-24 13:27:02
【问题描述】:
在 WinForms 中,如何强制从 UI 线程立即更新 UI?
我在做的大致是:
label.Text = "Please Wait..."
try
{
SomewhatLongRunningOperation();
}
catch(Exception e)
{
label.Text = "Error: " + e.Message;
return;
}
label.Text = "Success!";
标签文本在操作前未设置为“请稍候...”。
我使用另一个线程进行操作解决了这个问题,但它很麻烦,我想简化代码。
【问题讨论】:
-
在另一个线程中运行
SomewhatLongRunningOperation()是正确的答案。你不应该为任何不直接影响 UI 的东西占用 UI 线程。至于简化代码,您很有可能可以简化其他线程的使用。
标签: c# winforms multithreading