public void RemoveDownload(Downloader downloader) { if (downloader.State != DownloaderState.NeedToPrepare || downloader.State != DownloaderState.Ended || downloader.State != DownloaderState.Paused) { downloader.Pause(); } using (LockDownloadList(true)) { //downloads.Remove(downloader); int id = orderedDownloads[downloader.OrderedIndex]; if (downloader.Id != id) { throw new Exception(string.Format("error cant remove downloader id {0} ordered index {1}, downloader id in ordered list is {2}", downloader.Id, downloader.OrderedIndex, id)); } orderedDownloads.RemoveAt(downloader.OrderedIndex); downloads.Remove(downloader.Id); // refresh ordered index int i = 0; foreach (int id2 in orderedDownloads) { downloads[id2].OrderedIndex = i++; } } OnDownloadRemoved(downloader); }
public void RemoveDownload(Downloader downloader) { if (downloader.State != DownloaderState.NeedToPrepare || downloader.State != DownloaderState.Ended || downloader.State != DownloaderState.Paused) { downloader.Pause(); } using (LockDownloadList(true)) { downloads.Remove(downloader); } OnDownloadRemoved(downloader); }
public void RemoveDownload(Downloader downloader) { if (downloader.State != DownloaderState.NeedToPrepare || downloader.State != DownloaderState.Ended || downloader.State != DownloaderState.Paused) { downloader.Pause(); } using (LockDownloadList(true)) { //downloads.Remove(downloader); int id = orderedDownloads[downloader.OrderedIndex]; if (downloader.Id != id) throw new Exception(string.Format("error cant remove downloader id {0} ordered index {1}, downloader id in ordered list is {2}", downloader.Id, downloader.OrderedIndex, id)); orderedDownloads.RemoveAt(downloader.OrderedIndex); downloads.Remove(downloader.Id); // refresh ordered index int i = 0; foreach (int id2 in orderedDownloads) downloads[id2].OrderedIndex = i++; } OnDownloadRemoved(downloader); }