我已经写在VB6一个程序,读取很长的文本文件,并进行了很长的操作。 我还实施进度条,但我的问题是,后而我的计划说“不响应”,并在任务完成时,它开始再次响应。
如何消除这种“不回应”的问题?
我已经写在VB6一个程序,读取很长的文本文件,并进行了很长的操作。 我还实施进度条,但我的问题是,后而我的计划说“不响应”,并在任务完成时,它开始再次响应。
如何消除这种“不回应”的问题?
在Windows / Explorer将当它太久没有处理任何消息的过程改变为“未响应”状态。 在VB6,而不调用运行的代码一长段时,会出现这种情况DoEvents
。
不幸的是,VB6不轻易做多线程所以你最好的选择是定期调用DoEvents
在操作过程中。 理想情况下,这将只是更新进度条的位置之后。
如果这样做,你将需要小心,以防止重入。 这是由长操作开始时禁用的控件和它结束时重新使他们很容易。 如果你想要让他们取消,您将需要使用您的取消按钮单击事件中设置一个布尔值,并调用之后检查DoEvents
。
你可以调用DoEvents
在长期的运作,但要小心,因为它有不同的注意事项与它相关联。