在Visual Studio宏中是否有类似于DoEvents的等效方法?

5
我有一个长时间运行的宏,在其中我会定期向输出窗口写入消息,以便用户知道正在发生某些事情。问题是,输出窗口直到宏完成后才会显示(除非您奇怪地打开“继续等待?”对话框)。
有没有办法“刷新”事件队列?

这是VB,所以DoEvents不起作用吗? - Preet Sangha
@Preet,它是VBA(我想),无论如何,我在Intellisense中没有看到“Application”对象,但也许我错过了一些引用? - Benjol
只需使用DoEvents,它是VBA中的一个语句。 - Yuhong Bao
1个回答

0
如果您引用Windows Forms,可以像平常一样访问Application.DoEvents。
我已经使主要的IDE实时响应Windows更新和关闭,而宏仍在运行。
    DTE.SuppressUI = False
    Threading.Thread.Sleep(5000)

因此,我建议在需要确保UI更新的情况下,使用标准的DoEventsSleep(55)循环约250毫秒左右,以及SuppressUI=False


好主意,除了...似乎没有任何区别 :) - Benjol

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接