Пример #1
0
        public void Enqueue(Func <CancellationToken, Task> workItem)
        {
            if (workItem == null)
            {
                throw new ArgumentNullException(nameof(workItem));
            }

            WorkItems.Enqueue(workItem);
            Signal.Release();
        }
Пример #2
0
        public Task <Protocol.Response> Send(JavaEditor javaEditor, Protocol.Request request)
        {
            var source = new TaskCompletionSource <Protocol.Response>();

            lock (WorkItems)
            {
                WorkItems.Enqueue(new Tuple <Protocol.Request, TaskCompletionSource <Protocol.Response>, JavaEditor>(request, source, javaEditor));
                Telemetry_MaxQueueLength = Math.Max(WorkItems.Count, Telemetry_MaxQueueLength);
            }
            return(source.Task);
        }