Per*_*etz 0 vb6 click doevents
目前,我打电话的DoEvents以检查按钮美孚在表格栏已被点击.这种方法有效,但它需要太多的处理能力,延误了程序.
我相信如果我只能检查Button Foo是否被点击,而不是DoEvents必须经历的所有其他形式,那么延迟可以减少.
关于如何点击Button Foo的任何想法?
VB6并不是真正设计用于您正在做的事情(某种长期运行的直线代码,它不会退回以提供消息循环控制).通常,这样的任务将委托给工作线程,而在VB6中,这意味着一些外部组件大多数时候都是用C++实现的.
对于您的ad-hoc逻辑,只需要很少的方法来执行此操作:
这就是它.
VB6文档中描述了执行此类操作的规定方法.您打破了长时间运行的循环并将逻辑转换为可重复的"量子"工作(如处理循环的n次迭代),并在Form-global数据中维护工作负载的状态.然后使用Timer控件,其间隔设置为1或16(几乎不重要,它们通常需要至少16ms来触发)并在其事件处理程序中运行工作负载量子.
因此,如果您只是有一个循环,当前迭代100,000次执行某些操作,您可能会将其分解,以便每个Timer tick运行500次.量子大小可能需要根据循环内的内容进行调整--500只是为了说明而选择的值.你需要调整它,直到它保持响应的UI而不会使你的后台工作负荷过多(减慢完成速度).