예제 #1
0
        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);
        }
예제 #2
0
        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);
            }

            OnDownloadRemoved(downloader);
        }
예제 #4
0
        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);
        }