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);
                            }
                        });
                    }
                }
            }
        }