private void UpdateOwnProgress(NiJob job) { if (_progressItemsPanel.Controls.Count > 0) { double step = (double)_progressBar.Maximum / _jobsSeen; Text = job.Handler.Title; _statusTextBox.Text = job.CurrentStatus; if (!job.Progress.HasValue && _jobsCompleted == 0) { _progressBar.Style = ProgressBarStyle.Marquee; } else { _progressBar.Style = ProgressBarStyle.Continuous; _progressBar.Value = (int)( _jobsCompleted * step + job.Progress.GetValueOrDefault(0) * step ); } } }
private void AddJob(NiJob job) { if (_controls.ContainsKey(job)) { return; } _jobsSeen++; var control = new JobProgressControl { Job = job, Dock = DockStyle.Top }; _controls.Add(job, control); _progressItemsPanel.Controls.Add(control); _progressItemsPanel.Controls.SetChildIndex(control, 0); if (job.Running) { UpdateOwnProgress(job); } }
public IList <NiJob> GetAllJobs() { NiJob[] result; lock (_queue) { result = new NiJob[_queue.Count]; _queue.CopyTo(result, 0); } return(result); }
public void ReportProgressChanged(NiJob job) { bool isCurrent; lock (_syncRoot) { isCurrent = ReferenceEquals(job, _currentJob); } if (isCurrent) { OnProgressChanged(new JobEventArgs(job)); } }
public HResult CreateJob(INiJobHandler handler, out INiJob job) { job = null; try { job = new NiJob(this, handler); return HResult.OK; } catch (Exception ex) { return ErrorUtil.GetHResult(ex); } }
public HResult CreateJob(INiJobHandler handler, out INiJob job) { job = null; try { job = new NiJob(this, handler); return(HResult.OK); } catch (Exception ex) { return(ErrorUtil.GetHResult(ex)); } }
private void UpdateProgress(NiJob job) { if (job != null) { JobProgressControl control; if (_controls.TryGetValue(job, out control)) { control.UpdateProgress(); if (job.Running) { UpdateOwnProgress(job); } } } }
private void RemoveJob(NiJob job) { JobProgressControl control; if (_controls.TryGetValue(job, out control)) { _jobsCompleted++; _progressItemsPanel.Controls.Remove(control); control.Dispose(); _controls.Remove(job); if (_controls.Count == 0) { Dispose(); } } }
private void AddJob(NiJob job) { if (_controls.ContainsKey(job)) return; _jobsSeen++; var control = new JobProgressControl { Job = job, Dock = DockStyle.Top }; _controls.Add(job, control); _progressItemsPanel.Controls.Add(control); _progressItemsPanel.Controls.SetChildIndex(control, 0); if (job.Running) UpdateOwnProgress(job); }
private void ProcessJobs(object state) { lock (_syncRoot) { if (_queue.Count == 0) { return; } _currentJob = _queue.Peek(); } while (true) { _currentJob.RaisePerform(); _event.Set(); lock (_syncRoot) { var removedJob = _queue.Dequeue(); OnJobRemoved(new JobEventArgs(removedJob)); if (_queue.Count == 0) { OnProgressChanged(new JobEventArgs(null)); break; } _currentJob = _queue.Peek(); } } lock (_syncRoot) { _currentJob = null; } }
public JobEventArgs(NiJob job) { Job = job; }
private void ProcessJobs(object state) { lock (_syncRoot) { if (_queue.Count == 0) return; _currentJob = _queue.Peek(); } while (true) { _currentJob.RaisePerform(); _event.Set(); lock (_syncRoot) { var removedJob = _queue.Dequeue(); OnJobRemoved(new JobEventArgs(removedJob)); if (_queue.Count == 0) { OnProgressChanged(new JobEventArgs(null)); break; } _currentJob = _queue.Peek(); } } lock (_syncRoot) { _currentJob = null; } }
public void ReportProgressChanged(NiJob job) { bool isCurrent; lock (_syncRoot) { isCurrent = ReferenceEquals(job, _currentJob); } if (isCurrent) OnProgressChanged(new JobEventArgs(job)); }
public IList<NiJob> GetAllJobs() { NiJob[] result; lock (_queue) { result = new NiJob[_queue.Count]; _queue.CopyTo(result, 0); } return result; }
private void UpdateProgress(NiJob job) { if (job != null) { JobProgressControl control; if (_controls.TryGetValue(job, out control)) { control.UpdateProgress(); if (job.Running) UpdateOwnProgress(job); } } }
private void RemoveJob(NiJob job) { JobProgressControl control; if (_controls.TryGetValue(job, out control)) { _jobsCompleted++; _progressItemsPanel.Controls.Remove(control); control.Dispose(); _controls.Remove(job); if (_controls.Count == 0) Dispose(); } }