public DispatcherQueue(string name, Dispatcher dispatcher, TaskExecutionPolicy policy, double schedulingRate)
: this(name, dispatcher, policy)
{
if (policy == TaskExecutionPolicy.ConstrainQueueDepthDiscardTasks || policy == TaskExecutionPolicy.ConstrainQueueDepthThrottleExecution)
throw new ArgumentException ("maximumQueueDepth");
if (schedulingRate < 1 && policy != TaskExecutionPolicy.Unconstrained)
throw new ArgumentException ("schedulingRate");
MaximumSchedulingRate = schedulingRate;
watch = Stopwatch.StartNew ();
}