private void ProcessQueue()
{
while (queue.Count > 0)
{
if (eventListener.IsCanceled())
{
break;
}
var workitem = queue.Dequeue();
try
{
workitem.Process();
}
catch (AddressCorrelatedException aex)
{
Error(aex.Address, aex.Message);
}
catch (Exception ex)
{
Error(workitem.Address, ex.Message);
}
if (cancelSvc != null && cancelSvc.IsCancellationRequested)
break;
}
}