gpt4 book ai didi

multithreading - 在XP上长时间运行时,vb6应用程序挂起

转载 作者:行者123 更新时间:2023-12-03 13:12:56 27 4
gpt4 key购买 nike

我有一个执行长时间操作的VB6应用程序。假设,保存到数据库需要1分钟以上的时间。

在此保存期间,我希望我的窗口被锁定(禁用)并显示沙漏光标。

但是下一个代码不会这样做:

Private Sub Update_Click()
Screen.MousePointer = vbHourglass
Me.MousePointer = vbHourglass
Me.Enabled = False
'This takes more than minute:
Update
Me.MousePointer = vbDefault
Screen.MousePointer = vbDefault
Me.Enabled = True
End Sub

IE。表单仍处于启用状态,没有沙漏光标。而且,如果我尝试对表单进行任何操作,都将挂起。

有什么想法可以使该应用程序变得用户友好,并让用户知道该应用程序在按下按钮后会执行某些操作吗?

不幸的是,我只能使用VB6,所以不能使用后台工作程序。

注意:在Win7计算机中,相同的代码使光标变得沙漏,因此用户看到该应用程序正在执行操作。在XP系统中,该应用程序只是挂起,光标没有任何 react 。

最佳答案

您应该在更新之前添加DoEvents,以便Windows窗体可以将窗体更新为新状态。

DoEvents使Windows有时间处理未决事件。

关于multithreading - 在XP上长时间运行时,vb6应用程序挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19489350/

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