VB6应用程序停止响应

VB6应用程序停止响应,vb6,windows-process,Vb6,Windows Process,我有一个用VB6编写的程序,它读取一个长文本文件并执行一个很长的操作。 我也实现了进度条,但我的问题是,当我的程序说“没有响应”之后,它会在任务完成后再次开始响应 如何消除此“无响应”问题?您可以在长时间操作中调用DoEvents,但要小心,因为它与此相关。Windows/Explorer会将进程更改为“无响应”状态,如果进程太长而不处理任何消息。 在VB6中,当运行一长段代码而不调用DoEvents时,就会发生这种情况 不幸的是,VB6不容易执行多线程,因此最好的选择是在操作期间定期调用DoE

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


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

您可以在长时间操作中调用
DoEvents
,但要小心,因为它与此相关。

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

不幸的是,VB6不容易执行多线程,因此最好的选择是在操作期间定期调用
DoEvents
。理想情况下,这将是在更新进度条位置之后

进行此操作时,您需要小心防止再次进入。这很容易,只要在长时间操作开始时禁用控件,并在操作完成后重新启用它们。
如果要让它们取消,则需要使用在“取消”按钮单击事件中设置的布尔值,并在调用
DoEvents

欢迎使用StackOverflow后选中。您可能希望阅读常见问题解答和有关的页面,尽量不要不必要地大声喊叫或使用粗体文字。您可能对相关问题和感兴趣。标题可能看起来不相关,但答案将对您有用。如前所述,它们解释了在VB6+1中进行后台处理的一些不同方法