【发布时间】:2020-04-07 19:25:04
【问题描述】:
我正在尝试做一些非常简单的事情,如下所示。
UpdateUI()
{
DisableButtons()
LongRunningOperation_UpdateLotsOfInformation()
EnableButtons()
}
当我进行 UI 更新时,我想在 UI 加载时禁用按钮。但是,当我运行此代码时,DisableButtons() 的消息似乎直到所有 UpdateUI() 完成后才被处理。效果是按钮在加载期间(可能是 1 分钟)保持启用状态,然后当长时间运行加载完成时,按钮从启用快速闪烁到禁用。
在处理长时间运行的操作之前,如何确保按钮被禁用?
任何帮助将不胜感激,谢谢。
【问题讨论】:
-
后台工作者、线程池、异步/等待、任务...
-
您的问题并未具体说明您正在使用几个 GUI API 中的哪一个。 Winforms 和 WPF 是最常用的两种,因此请查看标记的重复项,以了解 Stack Overflow 上许多已回答的问题中的一小部分,这些问题可以解决您的问题。
标签: c# multithreading