【问题标题】:Is there an equivalent of DoEvents in Visual Studio macros?Visual Studio 宏中是否有等效的 DoEvents?
【发布时间】:2011-04-24 19:38:31
【问题描述】:

我有一个长时间运行的宏,我在其中定期向输出写入消息,以便用户知道正在发生的事情。问题是在宏完成之前不会显示输出(除非您打开了 Continue Waiting? 对话框,这很奇怪)。

是否有“刷新”事件队列的方法?

【问题讨论】:

  • 是VB所以DoEvents不起作用?
  • @Preet,它是 VBA(我认为),无论如何我都没有在智能感知中看到“应用程序”对象,但也许我缺少一些参考资料?
  • 只使用DoEvents,它是VBA中的一个语句。

标签: visual-studio macros


【解决方案1】:

如果您引用 Windows 窗体,则可以正常访问 Application.DoEvents。

我让主 IDE 响应 Windows 更新并在宏仍在运行时实时关闭

    DTE.SuppressUI = False
    Threading.Thread.Sleep(5000)

因此,当您想确保更新 UI 时,我建议使用标准的 DoEventsSleep(55) 循环约 250 毫秒,与 SuppressUI=False 一起使用。

【讨论】:

  • 好主意,除了......它似乎没有任何区别:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-06
  • 2019-11-18
  • 1970-01-01
  • 2010-12-16
  • 2016-04-21
  • 1970-01-01
相关资源
最近更新 更多