1

主题听起来是相互排斥的,这可能是一个可怕的黑客,但我还是会问。

我有一个单线程 VB.NET 应用程序,它将状态栏标签设置为“正在加载...”,然后从数据库同步加载数据,在某些情况下可能需要 1-2 分钟。有没有办法在加载数据时向用户显示 AJAX 类型的动画?当然,正确的方法是使用单独的线程/BackgroundWorker 进行数据访问和单独管理 UI,但我目前无法更改数据访问模型并被要求“临时修复”。

以下是我目前的一些想法:

  1. 从另一个线程更新标签(并且只有那个标签),强制重绘,以某种方式绕过 windows 窗体消息泵(可能不可能)

  2. 在后台保持另一个进程并从主应用程序向它发送“显示”消息。它显示在应用程序前面,显示动画,直到收到来自主应用程序的“隐藏”消息。(用户从主应用程序切换但“动画”表单仍然可见的问题)

4

1 回答 1

1

我可能会因为建议而被否决(坦率地说,我不怪别人),但这听起来像是DoEvents的工作。

我通常不会建议它,但你正在寻找一个黑客。

于 2013-02-26T00:44:37.203 回答