public static void DefaultRequestDownload(Uri uri, IDownloadUpdated notify) { if (FileDownloader.DefaultLoader == null) { FileDownloader.DefaultLoader = new FileDownloader(); } FileDownloader.DefaultLoader.AddDownload(uri, notify); }
public static void UpdateNotify(Uri uri, IDownloadUpdated notify) { if (FileDownloader.pendingRequests.ContainsKey(uri)) { //Uri down = d.First() as Uri; //down.Autore = "ciccio"; List <IDownloadUpdated> list = new List <IDownloadUpdated>(4); list.Add(notify); FileDownloader.pendingRequests[uri] = list; } }
public void AddDownload(Uri uri, IDownloadUpdated notify) { object obj2 = FileDownloader.requestQueue; lock (obj2) { if (FileDownloader.pendingRequests.ContainsKey(uri)) { return; } } FileDownloader.QueueRequest(uri, notify); return; }
static void QueueRequest(Uri uri, IDownloadUpdated notify) { if (notify == null) { throw new ArgumentNullException("notify"); } object obj = FileDownloader.requestQueue; lock (obj) { if (FileDownloader.pendingRequests.ContainsKey(uri)) { FileDownloader.pendingRequests[uri].Add(notify); } else { List <IDownloadUpdated> list = new List <IDownloadUpdated>(4); list.Add(notify); FileDownloader.pendingRequests[uri] = list; if (FileDownloader.picUriers >= MaxRequests) { FileDownloader.requestQueue.Push(uri); } else { ThreadPool.QueueUserWorkItem(delegate { try { FileDownloader.StartFileDownload(uri); } catch (Exception value) { Console.WriteLine(value); } }); } } } }