Subject听起来是互斥的,这可能是一个可怕的破解,但我还是会问的。
我有一个单线程VB.NET应用程序,它将状态栏标签设置为"正在加载…",然后从数据库同步加载数据,在某些情况下可能需要1-2分钟。有没有什么方法可以在加载数据时向用户显示AJAX类型的动画?当然,正确的方法是使用单独的线程/BackgroundWorker进行数据访问并单独管理UI,但我目前无法更改数据访问模型,并且被要求进行"临时修复"。
以下是我目前的一些想法:
-
从另一个线程更新标签(并且只更新单个标签(,强制重新绘制,以某种方式绕过windows窗体消息泵(可能不可能(
-
将另一个进程保留在后台,并从主应用程序向其发送"显示"消息。它显示在应用程序的前面,显示动画,直到收到来自主应用程序的"隐藏"消息。(用户从主应用程序切换但"动画"形式仍然可见的问题(
我可能会因为建议而被投票否决(坦率地说,我并不责怪别人(,但这听起来像是DoEvents的工作。
我通常不会建议这样做,但你正在寻找黑客。