private void ThreadProc()
{
while (true)
{
if(AutoResetEvent.WaitAny(new [] {_stopEvent, _canProcess}) == 0)
{
_log.Debug("Recieved stop signal. Exiting thread.");
return;
}
else
{
AsyncRequest request;
while (_requestQueue.TryDequeue(out request))
{
ProcessAsyncRequest(request);
}
if (_requestQueue.Count == 0)
{
OnTasksCompleted();
}
}
}
}