【问题标题】:VB6 Application Stops RespondingVB6 应用程序停止响应
【发布时间】:2012-06-22 13:19:20
【问题描述】:

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

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

【问题讨论】:

标签: vb6 windows-process


【解决方案1】:

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

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

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

【讨论】:

【解决方案2】:

您可以在长时间操作中调用DoEvents,但要小心,因为它关联了various caveats

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多