/// <summary>Removes a scheduler from the group.</summary> /// <param name="queue">The scheduler to be removed.</param> private void RemoveQueue_NeedsLock(QueuedTaskSchedulerQueue queue) { QueueGroup group = this._queueGroups[queue._priority]; int index = group.IndexOf(queue); if (group.NextQueueIndex >= index) { group.NextQueueIndex--; } group.RemoveAt(index); }
/// <summary>Removes a scheduler from the group.</summary> /// <param name="queue">The scheduler to be removed.</param> void RemoveQueueNeedsLock(QueuedTaskSchedulerQueue queue) { // Find the group that contains the queue and the queue's index within the group QueueGroup queueGroup = _queueGroups[queue._priority]; int index = queueGroup.IndexOf(queue); // We're about to remove the queue, so adjust the index of the next // round-robin starting location if it'll be affected by the removal if (queueGroup.NextQueueIndex >= index) { queueGroup.NextQueueIndex--; } // Remove it queueGroup.RemoveAt(index); }