in EnvDTE.Client/Impl/ProjectModelImpl/ProjectHierarchyCache.cs [15:31]
public ProjectHierarchyCache(DteImplementation dte)
{
_dte = dte;
dte.DteProtocolModel.ProjectHierarchyCache_add_Project.Advise(dte.DteLifetime, OnProjectAdded);
dte.DteProtocolModel.ProjectHierarchyCache_remove_Project.Advise(dte.DteLifetime, OnProjectRemoved);
dte.DteProtocolModel.ProjectHierarchyCache_update_Project.Advise(dte.DteLifetime, OnProjectUpdated);
lock (_lock)
{
// Could take a bit longer then max Rpc timeout, so we use Start
var initialProjects = dte.DteProtocolModel.ProjectHierarchyCache_requestInitialization
.Start(dte.DteLifetime, Unit.Instance)
.GetAwaiter().GetResult();
PopulateCache(initialProjects);
}
}