void RequestHandler(object sender, RequestEventArgs e) { IHttpClientContext context = (IHttpClientContext)sender; IHttpRequest request = e.Request; if (_requestQueue.ShouldQueue) { _requestQueue.Enqueue(context, request); return; } ProcessRequestWrapper(context, request); // no need to lock, if all threads are busy, // someone is bound to trigger the thread correctly =) _requestQueue.Trigger(); }
/// <summary> /// Received from a <see cref="IHttpClientContext"/> when a request have been parsed successfully. /// </summary> /// <param name="source"><see cref="IHttpClientContext"/> that received the request.</param> /// <param name="args">The request.</param> private void OnRequest(object source, RequestEventArgs args) { IHttpClientContext context = (IHttpClientContext)source; IHttpRequest request = args.Request; if (_requestQueue.ShouldQueue) { _requestQueue.Enqueue(context, request); return; } ProcessRequestWrapper(context, request); // no need to lock, if all threads are busy, // someone is bound to trigger the thread correctly =) _requestQueue.Trigger(); }