Visual Studio Add-in: ¿Cómo sé cuando una solución ha terminado de cargar
-
19-09-2019 - |
Pregunta
Estoy escribiendo un VS2008 complemento (utilizando ETD) que necesita ser notificado después de la solución actual ha terminado de cargar.
He intentado usar el siguiente código:
events = (Events2) applicationObject.Events
events.SolutionEvents.Opened += DoSomeWorkEvent;
Por desgracia, parece que desde VS2005 el evento se produce cuando la solución empieza a cargar -. Y no cuando termina
Una breve búsqueda de Internet produjo el siguiente hilo que explica el problema y sugerir una solución (comprobar cada elemento de proyecto para ver si se termina de cargar).
¿Es esta la mejor solución disponible o hay una mejor manera de saber cuando una solución ha terminado de cargar?
Solución
He encontrado una solución que resuelve este problema -. He creado un Windows.Forms.Timer que se ejecuta en el hilo principal y comprueba si la solución ha terminado de cargar
private void TimerTick(object sender, EventArgs e)
{
try
{
var solution = applicationObject.Solution;
if (solution.IsOpen && string.IsNullOrEmpty(solution.FileName) == false)
{
timer.Stop();
// insert logic here
}
}
catch (Exception exception)
{
Console.WriteLine(exception);
}
}