Exemplo n.º 1
0
 /// <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();
     }
 }
Exemplo n.º 2
0
        /// <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);
				}
		}