8

ソリューションを開いた後、すべてのプロジェクトがソリューションにロードされると通知する、使用するイベント/インターフェイスを探しています。

インターフェイスに実装OnAfterOpenSolutionしました。IVsSolutionEvents2これは、ソリューションが開いた直後に呼び出されます...したがって、UIスレッドに対して実行するコードは、プロジェクトが読み込まれる前に、無意識のうちにIDEをロックします。

ソリューションのすべてのプロジェクトが開いたときに呼び出される`OnAfterOpenSolution'の実装に似た手法はありますか?

4

1 に答える 1

5

IVsSolutionLoadEventsインターフェイスのOnAfterBackgroundSolutionLoadCompleteイベントは、ソリューションのすべてのプロジェクトの読み込みが完了した後に発生します。このための実装は、IVsSolution.AdviseSolutionEvents(..)メソッドを使用してイベントをアタッチするために、IVsSolutionEventsインターフェイスの1つの実装から実装または拡張する必要があります。

この領域でさらに調査すると、OnAfterBackgroundSolutionLoadCompleteは、プロジェクトがバックグラウンドでロードするように設定されている場合にのみ発生します。バックグラウンドロードが無効になっている場合、このイベントは発生しません。OnAfterBackgroundSolutionLoadCompleteイベントに依存する場合は、 IVsSolutionLoadManagerを実装し、少なくとも1つのプロジェクトにバックグラウンドの読み込み優先度があることを確認するか、ユーザーが読み込み優先度を設定した方法に基づいて切り替える必要があります。

于 2013-05-23T16:05:15.557 に答える