/// <summary> /// Pauses a task. /// </summary> /// <param name="p_tskTask">The task to pause.</param> public void QueueDownload(IBackgroundTask p_tskTask) { if (CanQueue(p_tskTask)) { p_tskTask.Queue(); } }
/// <summary> /// Resumes the given task. /// </summary> /// <param name="p_tskTask">The task to resume.</param> public void ResumeTask(IBackgroundTask p_tskTask) { bool booCanResume = false; lock (ModRepository) { if (ModRepository.IsOffline && (!ModRepository.SupportsUnauthenticatedDownload)) { if (m_mmgModManager.Login()) { booCanResume = true; } } else { booCanResume = true; } } lock (RunningTasks) { int MaxDownloads = 0; if (Settings.MaxConcurrentDownloads > MaxConcurrentDownloads) { MaxDownloads = MaxConcurrentDownloads; } else { MaxDownloads = Settings.MaxConcurrentDownloads; } if (RunningTasks.Count >= MaxDownloads) { if ((p_tskTask.SupportsQueue) && (p_tskTask.IsRemote)) { lock (m_objLock) p_tskTask.Queue(); } booCanResume = false; } } if (booCanResume) { if (DownloadMonitor.CanResume(p_tskTask)) { BackgroundWorker bgwWorker; bgwWorker = new BackgroundWorker(); bgwWorker.DoWork += new DoWorkEventHandler(bgwWorker_DoWork); bgwWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bgwWorker_RunWorkerCompleted); bgwWorker.RunWorkerAsync(p_tskTask); } } }
/// <summary> /// Pauses a task. /// </summary> /// <param name="p_tskTask">The task to pause.</param> public void QueueDownload(IBackgroundTask p_tskTask) { if (CanQueue(p_tskTask)) p_tskTask.Queue(); }
/// <summary> /// Resumes the given task. /// </summary> /// <param name="p_tskTask">The task to resume.</param> public void ResumeTask(IBackgroundTask p_tskTask) { bool booCanResume = false; lock (ModRepository) { if (ModRepository.IsOffline && (!ModRepository.SupportsUnauthenticatedDownload)) { if (m_mmgModManager.Login()) booCanResume = true; } else booCanResume = true; } lock (RunningTasks) if (RunningTasks.Count >= MaxConcurrentDownloads) { if ((p_tskTask.SupportsQueue) && (p_tskTask.IsRemote)) p_tskTask.Queue(); booCanResume = false; } if (booCanResume) if (DownloadMonitor.CanResume(p_tskTask)) { BackgroundWorker bgwWorker; bgwWorker = new BackgroundWorker(); bgwWorker.DoWork += new DoWorkEventHandler(bgwWorker_DoWork); bgwWorker.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bgwWorker_RunWorkerCompleted); bgwWorker.RunWorkerAsync(p_tskTask); } }