Exemplo n.º 1
0
 internal PrioritizedQueue(string resetEventName, PrioritizedQueueServiceTask <T> serviceTask, ushort priority)
 {
     _signal        = new TaskEventWaitHandle(false, resetEventName, priority);
     SafeWaitHandle = _signal.SafeWaitHandle;
     serviceTask.AddResetEvent(_signal);
     _signal.Queue = this;
 }
Exemplo n.º 2
0
        private async Task Produce(CancellationToken token, ServiceTaskWaitEventSource eventSource,
                                   TaskEventWaitHandle waitHandle)
        {
            Status = TaskStatus.Running;
            var item = eventSource == ServiceTaskWaitEventSource.Prioritized
                ? ((PrioritizedQueue <T>)waitHandle.Queue).Dequeue()
                : GetNextItem();

            if (item != null)
            {
                await _propagationBlock.SendAsync(item, token);
            }
        }
Exemplo n.º 3
0
 internal void AddResetEvent(TaskEventWaitHandle resetEvent)
 {
     _loopWaitHandleList.Add(_loopWaitHandleList.Count, resetEvent);
 }