public void Enqueue(Func <CancellationToken, Task> workItem) { if (workItem == null) { throw new ArgumentNullException(nameof(workItem)); } WorkItems.Enqueue(workItem); Signal.Release(); }
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); }