public TaskDownloader(IEnumerable <Guid> jobIds) { taskIds = jobIds; taskDownloader = new ConcurrentTaskDownloader <ItemTask>(Settings.Default.MaxParallelDownloads, Settings.Default.MaxParallelDownloads); taskDownloader.ExceptionOccured += new EventHandler <EventArgs <Exception> >(taskDownloader_ExceptionOccured); results = new Dictionary <Guid, HiveTask>(); }
public RefreshableJob(Job hiveJob) { this.progress = new Progress(); this.refreshAutomatically = true; this.Job = hiveJob; this.log = new ThreadSafeLog(); this.jobDownloader = new ConcurrentTaskDownloader<ItemTask>(Settings.Default.MaxParallelDownloads, Settings.Default.MaxParallelDownloads); this.jobDownloader.ExceptionOccured += new EventHandler<EventArgs<Exception>>(jobDownloader_ExceptionOccured); this.HiveTasks = new ItemCollection<HiveTask>(); }
protected RefreshableJob(RefreshableJob original, Cloner cloner) { cloner.RegisterClonedObject(original, this); this.Job = cloner.Clone(original.Job); this.IsControllable = original.IsControllable; this.log = cloner.Clone(original.log); this.RefreshAutomatically = false; // do not start results polling automatically this.jobDownloader = new ConcurrentTaskDownloader<ItemTask>(Settings.Default.MaxParallelDownloads, Settings.Default.MaxParallelDownloads); this.jobDownloader.ExceptionOccured += new EventHandler<EventArgs<Exception>>(jobDownloader_ExceptionOccured); this.HiveTasks = cloner.Clone(original.HiveTasks); this.ExecutionTime = original.ExecutionTime; this.ExecutionState = original.ExecutionState; }
public void Dispose() { if (jobDownloader != null) { jobDownloader.ExceptionOccured -= new EventHandler<EventArgs<Exception>>(jobDownloader_ExceptionOccured); jobDownloader.Dispose(); jobDownloader = null; } if (jobResultPoller != null) { DeregisterResultPollingEvents(); jobResultPoller = null; } if (hiveTasks != null) { DisposeTasks(); } if (job != null) { DeregisterJobEvents(); job = null; } }