VB6应用程序停止响应

时间:2012-06-22 13:19:20

标签: vb6 windows-process

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

如何删除此“无响应”问题?

2 个答案:

答案 0 :(得分:7)

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

不幸的是,VB6不容易做多个线程,所以你最好选择在操作期间定期调用DoEvents。理想情况下,这只是在更新进度条位置之后。

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

答案 1 :(得分:1)

您可以在漫长的操作中致电DoEvents,但要小心,因为它与various caveats相关联。