DoEvents 函数

重要:  本文是由机器翻译的,请参阅免责声明。请在 此处 中查找本文的英文版本以便参考。

注意: 如果 Microsoft Jet 表达式服务运行在沙盒模式下,可防止潜在不安全的表达式的求值,则禁用函数、 方法、 对象或本主题中介绍的属性。沙盒模式的详细信息,"沙盒模式"中搜索帮助。

生成执行,以使操作系统可以处理其他事件。

语法

DoEvents ( )

备注

DoEvents函数返回一个整数,表示独立版本的 Microsoft Visual Basic,如 Visual Basic,专业版中打开窗体的数目。DoEvents返回所有其他应用程序中的零。

DoEvents传递到操作系统的控件。操作系统已完成其队列中的事件的处理并已发送的SendKeys队列中的所有键之后,将返回控制权。

DoEvents是最有用的简单事项诸如允许用户取消某一过程开始后,例如搜索的文件。对于长时间运行的进程,转交给处理器是更好地通过使用计时器或委派给 ActiveX EXE 组件的任务。在后者的情况下,任务可以继续完全独立于您的应用程序,并操作系统负责多任务和时间切片。

随时暂时 yield 处理器内事件过程,请确保过程不会再次执行代码的其他部分的第一个调用返回; 之前这可能会导致意外结果。此外,如果其他应用程序可能会进行交互与该过程中无法预测的方式已转交控制权期间不要使用DoEvents

示例

注意: 下面的示例说明使用此函数在 Visual Basic for Applications (VBA) 模块。有关处理 VBA 的详细信息,搜索旁边的下拉列表中选择开发人员参考,然后在搜索框中输入一个或多个术语。

此示例使用DoEvents函数执行执行一次循环的每个 1000年迭代 yield 操作系统。DoEvents返回打开 Visual Basic 窗体,但仅宿主应用程序是 Visual Basic 时数。

' Create a variable to hold number of 
' Visual Basic forms loaded and visible.
Dim I, OpenForms
For I = 1 To 150000 ' Start loop.
If I Mod 1000 = 0 Then ' If loop has repeated
' 1000 times.
OpenForms = DoEvents ' Yield to operating system.
End If
Next I ' Increment loop counter.

注意: 机器翻译免责声明:本文是由无人工介入的计算机系统翻译的。Microsoft 提供机器翻译是为了帮助非英语国家/地区用户方便阅读有关 Microsoft 产品、服务和技术的内容。由于机器翻译的原因,本文可能包含词汇、语法或文法方面的错误。

扩展你的技能
了解培训
抢先获得新功能
加入 Office 预览体验计划

此信息是否有帮助?

谢谢您的反馈!

谢谢你的反馈! 可能需要转接到 Office 支持专员。

×