【问题标题】:Visual Studio Extension: Wait for all projects to complete loading with IVsSolutionEvents OnAfterOpenSolutionVisual Studio 扩展:使用 IVsSolutionEvents OnAfterOpenSolution 等待所有项目完成加载
【发布时间】:2012-12-06 18:13:34
【问题描述】:

我正在寻找一个要使用的事件/界面,在打开解决方案后,一旦所有项目都加载到解决方案中,它就会通知我。

我已经在IVsSolutionEvents2 接口中实现了OnAfterOpenSolution。这会在解决方案打开后立即调用...所以我针对 UI 线程运行的任何代码,即使是异步的,都会在项目加载之前锁定 IDE。

是否有与实现`OnAfterOpenSolution' 类似的技术,即在解决方案的所有项目都打开后调用?

【问题讨论】:

    标签: visual-studio-2010 visual-studio visual-studio-2008 visual-studio-extensions envdte


    【解决方案1】:

    在解决方案的所有项目都完成加载后,IVsSolutionLoadEvents 接口中的OnAfterBackgroundSolutionLoadComplete 事件被触发。为了使用 IVsSolution.AdviseSolutionEvents(..) 方法附加事件,仍需要实现或扩展其中一个 IVsSolutionEvents 接口的实现。

    在对该区域进行进一步调查后,仅当项目设置为在后台加载时才会发生 OnAfterBackgroundSolutionLoadComplete。如果后台加载已被禁用,则不会发生此事件。如果您打算依赖 OnAfterBackgroundSolutionLoadComplete 事件,或者根据用户设置加载优先级的方式进行切换,您可能还必须实现 IVsSolutionLoadManager 并确保至少 1 个项目具有后台加载优先级。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-06
      相关资源
      最近更新 更多