VB6 应用程序停止响应

标签 vb6 windows-process

我有一个用 VB6 编写的程序,它读取一个长文本文件并执行一个很长的操作。
我也实现了进度条,但我的问题是,在我的程序说“无响应”之后,它在任务完成后再次开始响应。

如何消除这个“无响应”问题?

最佳答案

Windows/Explorer 将一个进程更改为“无响应”状态,当它没有处理任何消息的时间过长时。
在 VB6 中,当运行一段很长的代码而不调用 DoEvents 时会发生这种情况。 .

不幸的是,VB6 不能轻松地执行多个线程,因此您最好的选择是定期调用 DoEvents在操作过程中。理想情况下,这将是在更新进度条位置之后。

执行此操作时,您需要小心防止重入。通过在长时间操作开始时禁用控件并在完成时重新启用它们,这很容易。
如果你想让它们取消,你需要使用你在取消按钮点击事件中设置的 bool 值并检查 调用 DoEvents .

关于VB6 应用程序停止响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11156978/

相关文章:

windows - 使用 _RTL_USER_PROCESS_PARAMETERS

arrays - ReDim 保留 "Subscript Out of Range"

windows - SEEK_FAILURE 如果文件超过 4.1 GB,SetFilePointer 失败怎么办

join - 在 VB6 中分割 Wav 文件

c# - 如何使用 C# 将消息从 Windows 服务传递到 Windows 桌面应用程序?

c# - 如何将进程 CMD.exe 行复制到文本框 C#

.net - .NET 中最大化另一个进程的窗口

c# - C++ 库适用于 vb6 但不适用于 c#

vb6 - 如何从函数返回值