gpt4 book ai didi

c# - 从 UI 线程强制 GUI 更新

转载 作者:IT王子 更新时间:2023-10-29 03:42:09 31 4
gpt4 key购买 nike

在 WinForms 中,如何强制从 UI 线程立即更新 UI?

我做的大致是:

label.Text = "Please Wait..."
try
{
SomewhatLongRunningOperation();
}
catch(Exception e)
{
label.Text = "Error: " + e.Message;
return;
}
label.Text = "Success!";

操作前标签文本未设置为“请稍候...”。

我使用另一个线程解决了这个问题,但它变得很复杂,我想简化代码。

最佳答案

起初我想知道为什么 OP 还没有将其中一个响应标记为答案,但是在我自己尝试之后仍然没有用,我深入挖掘了一下,发现这个问题还有很多,然后我首先假设。

阅读类似的问题可以获得更好的理解:Why won't control update/refresh mid-process

最后,郑重声明,我可以通过执行以下操作来更新我的标签:

private void SetStatus(string status) 
{
lblStatus.Text = status;
lblStatus.Invalidate();
lblStatus.Update();
lblStatus.Refresh();
Application.DoEvents();
}

尽管据我了解,这远非一种优雅而正确的方法。根据线程的繁忙程度,它可能会或可能不会起作用。

关于c# - 从 UI 线程强制 GUI 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1360944/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com