我有一些 C# 代码将进度消息写入 Visual Studio 2010 EnvDTE.OutputWindowPane。该代码是从 Visual Studio 菜单中调用的(它位于 VSPackage 中)。
问题是在菜单选择调用的所有处理完成之前不会重新绘制输出窗口,因此输出会立即出现,而不是在添加每一行时出现。我怀疑这与在主线程上执行的所有处理有关,因此 Visual Studio UI 无法重新绘制。
有没有办法在 Visual Studio 中“发送消息”来更新 UI——比如 Application.DoEvents()?VSPackage 还在项目中插入了一些项目,这似乎是“即时”发生的——它只是看起来落后的输出窗口。
我深入研究了各种 DTE 对象,但没有找到任何适合此功能的对象。