使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

注意: 如果 Microsoft Jet 表达式服务在沙盒模式下运行,则禁用本主题中所述的函数、方法、对象或属性,这会阻止计算潜在的不安全表达式。 有关沙盒模式的详细信息,请在“帮助”中搜索“沙盒模式”。

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

语法

DoEvents ( )

备注

DoEvents 函数返回一个 Integer 类型的值,表示独立版本的 Microsoft Visual Basic(如 Visual Basic、Professional Edition)中打开的窗体数。 DoEvents 在所有其他应用程序中返回零。

DoEvents 将控制传递给操作系统。 操作系统处理完其队列中的事件并发送 SendKeys 队列中的所有密钥后,将返回控件。

DoEvents 对于允许用户在进程启动后取消进程(例如搜索文件)等简单操作最有用。 对于长时间运行的进程,通过使用计时器或将任务委托给 ActiveX EXE 组件,可以更好地向处理器屈服。 在后一种情况下,任务可以完全独立于应用程序继续,操作系统负责处理多任务和时间切片。

每当在事件过程中暂时向处理器屈服时,请确保在第一次调用返回之前,不会从代码的其他部分再次执行 过程;这可能会导致不可预知的结果。 此外,如果其他应用程序可能在你产生控制权期间以不可预见的方式与过程交互,请不要使用 DoEvents

示例

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

此示例使用 DoEvents 函数,使执行每 1000 次循环迭代向操作系统屈服一次。 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 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×