public WorkQueueLocals(CustomWorkQueueBase <TWorkItem> workQueue) { _workQueue = workQueue; Random = new FastRandom(Thread.CurrentThread.ManagedThreadId); Queue = new WorkStealingQueue <TWorkItem>(); Semaphore = new SemaphoreSlim(0, 1); WaitNode = new WaitNode(Semaphore); WorkStealingQueueList.Add(ref _workQueue._localQueues, Queue); }
public void Dispose() { WorkStealingQueueList.Remove(ref _workQueue._localQueues, Queue); Semaphore.Dispose(); }