internal void UpdateSchedulingRate()
{
//MS's behavior is pretty odd, it seens to calculate the rate over the whole execution time
//It should a more stocastic model of storing the last 1,5,15 secs and be done with it.
//Otherwise it's method is very fragile against bursts.
currentRate = scheduledItems / (double)watch.Elapsed.TotalSeconds;
}