David Notario (one of our developers on the CLR team) has a great explanation of this at:


On the setup side, we NGEN several assemblies in the Framework and in VS.  NGEN has three priorities and anything that isn't a Pri 1 is NGEN'd when the CPU is free (usually after setup).

I've seen several folks ask why mscorsvw.exe is taking up 100% of their CPU after setup so the link above is worth the read.