Edit #2: When loading a project there are actually two components interacting. The "project system" and the "c# compiler/language service". Scalability across many projects (i.e. handling 250 projects) is mainly dealt with on the project system side. Scalability across many files and large files is mainly dealt with on the C# side. Also, for the most part loading all the projects happens on the main thread, whereas loading all the files happens on the background thread. This will hopefully allow us to load each project very quickly and allow you to start editing/working right away. However, we'll be sitting there churning away in the background to bring ourselves up to a full understanding of your code.