IWorkspaceProjectContextFactory.CreateProjectContextAsync is forced on the UI thread via Roslyn during solution load. UI thread is scarce resource during solution load and this means that Roslyn is prevented from being initialized until each project synchronously blocks on it in PrioritizedOnAfterOpenProject.
The project system would like to overlap this initialization so that we can make use of as many cores as possible during load.
IWorkspaceProjectContextFactory.CreateProjectContextAsync is forced on the UI thread via Roslyn during solution load. UI thread is scarce resource during solution load and this means that Roslyn is prevented from being initialized until each project synchronously blocks on it in PrioritizedOnAfterOpenProject.
The project system would like to overlap this initialization so that we can make use of as many cores as possible during load.