Under windows, is there anyway to programmatically count context switches of the same process? The best thing is a callback that gets called whenever a thread is switched.
Problem with counting your own context switches is that you might be switching contexts while counting them! Worse, your own counting code will subtract from the amount of time your own process has, thus you can execute less within one context cycle.
As "On Freund" (+1) says, use the performance counter instead, which counts contexts at a higher level.