// ================ /// <summary> /// Переместить все элементы из локальной очереди в общую /// </summary> /// <param name="localQueue">Локальная очередь</param> public void MoveItemsFromLocalQueueToGlobal(ThreadPoolLocalQueue localQueue) { TurboContract.Requires(localQueue != null, conditionString: "localQueue != null"); TurboContract.Assert(!_isDisposed, conditionString: "!_isDisposed"); try { } finally { ThreadPoolWorkItem item = null; while (localQueue.TrySteal(out item)) { _globalQueue.ForceAdd(item); } } }
// ================ /// <summary> /// Переместить все элементы из локальной очереди в общую /// </summary> /// <param name="localQueue">Локальная очередь</param> public void MoveItemsFromLocalQueueToGlobal(ThreadPoolLocalQueue localQueue) { Contract.Requires(localQueue != null); Debug.Assert(!_isDisposed); try { } finally { ThreadPoolWorkItem item = null; while (localQueue.TrySteal(out item)) { _globalQueue.ForceAdd(item); } } }