private void HandleBadDownload(DownloaderObj obj) { DevourTarget target = obj.Arg as DevourTarget; if (obj.State == HttpDownloadResult.BadAddress || obj.State == HttpDownloadResult.DocumentUnavailable) { AddFaultTarget(target); //Document extremely guilty _proxies.Release(obj.PrxContainer as ProxyContainer, false); //Proxy simply had a bad day } else { if (obj.State == HttpDownloadResult.ProxyError) { _proxies.Fire(obj.PrxContainer as ProxyContainer); //Proxy extremely guilty _targets.Enqueue(target); //Document not in the business } else { if (--target.Lifes <= 0) { AddFaultTarget(target); //Sth going wrong } _proxies.Release(obj.PrxContainer as ProxyContainer, false); //Proxy simply had a bad day } } }