/// <summary> /// 下载核心 /// </summary> /// <param name="path"></param> /// <param name="dir"></param> /// <param name="filename"></param> /// <param name="id"></param> private void DownloadCore(string path, string dir, string filename) { try { using (FileDownloader loader = new FileDownloader(path, dir, filename, ThreadNum)) { DownMessageDto msg = new DownMessageDto(); msg.Tag = DownStatus.Start; msg.MD5String = FileId; msg.Length = (int)loader.getFileSize(); SendMsgAction(msg); using (DownloadProgressListener linstenter = new DownloadProgressListener(msg)) { linstenter.doSendMsg = new DownloadProgressListener.dlgSendMsg(SendMsgAction); loader.DownloadAction(linstenter);//真正开始下载数据 } } } catch (Exception ex) { DownMessageDto msg = new DownMessageDto(); msg.Length = 0; msg.Tag = DownStatus.Error; msg.ErrMessage = ex.Message; msg.MD5String = FileId; SendMsgAction(msg); Console.WriteLine(ex.Message); } }
static DownloadManager() { ms_DownloadManager = XpcomHelper.GetService<nsIDownloadManager>(Xpcom.NS_DOWNLOADMANAGER_CONTRACTID); ms_DownloadProgressListener = new DownloadProgressListener(); ms_DownloadManager.AddListener(ms_DownloadProgressListener); var observerService = XpcomHelper.GetService<nsIObserverService>(Xpcom.NS_OBSERVERSERVICE_CONTRACTID); observerService.AddObserver(ms_DownloadProgressListener, "download-manager-remove-download", false); ms_DownloadManagerPreferences = new Lazy<PreferencesBranch>(() => PreferencesService.GetUserBranch("browser.download.manager")); }