protected override void QueueTask(Task task)
{
var pendings = _pendingTasks + _blockingTaskQueue.Count;
// If we've been disposed, no one should be queueing
if (_disposeCancellation.IsCancellationRequested || pendings >= _concurrencyLevel) throw new RejectedExecutionException();
_blockingTaskQueue.Add(task);
}