public long AddDownload(Uri uri, string filename, string title, IDownloadUpdated2 notify)
        {
            long   id   = 0;
            object obj2 = MBDownloadManager2.requestQueue;

            lock (obj2)
            {
                if (MBDownloadManager2.pendingRequests.ContainsKey(uri))
                {
                    return(0);
                }
            }

            if (notify == null)
            {
                throw new ArgumentNullException("notify");
            }
            object obj = MBDownloadManager2.requestQueue;

            lock (obj)
            {
                if (MBDownloadManager2.pendingRequests.ContainsKey(uri))
                {
                    MBDownloadManager2.pendingRequests[uri].Add(notify);
                }
                else
                {
                    List <IDownloadUpdated2> list = new List <IDownloadUpdated2>(4);
                    list.Add(notify);
                    MBDownloadManager2.pendingRequests[uri] = list;

                    id = MBDownloadManager2.Download(uri, filename, title, notify);
                }
            }
            return(id);
        }