我有一个用VB6编写的程序,它读取一个长文本文件并执行很长时间的操作. 我也实现了进度条,但我的问题是,在我的程序说“没有响应”之后,它在任务完成时再次开始响应. 如何删除此“
我也实现了进度条,但我的问题是,在我的程序说“没有响应”之后,它在任务完成时再次开始响应.
如何删除此“无响应”问题?
如果进程太长而没有处理任何消息, Windows /资源管理器会将进程更改为“无响应”状态.在VB6中,这将在运行很长一段代码而不调用DoEvents时发生.
不幸的是,VB6不容易做多个线程,所以你最好选择在操作期间定期调用DoEvents.理想情况下,这只是在更新进度条位置之后.
这样做时,您需要小心防止重新入侵.这很容易通过在长操作开始时禁用控件并在完成时重新启用它们.如果要取消它们,则需要使用在取消按钮单击事件中设置的布尔值,并在调用DoEvents后进行检查.