I was experimenting a lot with application profiling lately (using Visual Studio Performance Wizard). While working with Concurrency indicators, I've noticed the fact that when the application runs with multiple threads (both background and foreground) the cross-core context switch rate is quite high.
Knowing that generally a large number of cross-core context switches can be detrimental to application performance, I would like to reduce it to a minimum.
What would be the possible ways to do this in a .NET application besides minimizing the number of simultaneously running threads?