private void OnProgress(AbstractBackgroundProcess process, double progress) { if (Progress != null) { Progress(process, progress); } }
public void CancelProcess(AbstractBackgroundProcess process) { lock(activeProcesses) if (activeProcesses.Contains(process) && threadLookup[process].IsAlive) { threadLookup[process].Abort(); activeProcesses.Remove(process); threadLookup.Remove(process); } }
public void CancelProcess(AbstractBackgroundProcess process) { lock (activeProcesses) if (activeProcesses.Contains(process) && threadLookup[process].IsAlive) { threadLookup[process].Abort(); activeProcesses.Remove(process); threadLookup.Remove(process); } }
public void WaitFor(AbstractBackgroundProcess process) { if (!activeProcesses.Contains(process)) { return; } while (process.Status == ProcessStatus.INITIALIZED || process.Status == ProcessStatus.RUNNING) { Thread.Sleep(100); } }
private void OnStatusChanged(AbstractBackgroundProcess process, ProcessStatus status) { lock (activeProcesses) { if ((process.Status == ProcessStatus.FAILED || process.Status == ProcessStatus.COMPLETED || process.Status == ProcessStatus.ABORTED) && activeProcesses.Contains(process)) { activeProcesses.Remove(process); threadLookup.Remove(process); } } if (StatusChanged != null) { StatusChanged(process, status); } }
public void StartProcess(AbstractBackgroundProcess process) { lock (activeProcesses) if (!activeProcesses.Contains(process)) { activeProcesses.Add(process); OnStatusChanged(process, process.Status); process.StatusChanged += statusChangedDelegate; process.Progress += progressDelegate; Thread thread = new Thread(new ThreadStart(process.WorkRunner)); thread.Name = process.Name; thread.IsBackground = true; threadLookup[process] = thread; thread.Start(); } }
private void OnStatusChanged(AbstractBackgroundProcess process, ProcessStatus status) { lock (activeProcesses) { if ((process.Status == ProcessStatus.FAILED || process.Status == ProcessStatus.COMPLETED || process.Status == ProcessStatus.ABORTED) && activeProcesses.Contains(process)) { activeProcesses.Remove(process); threadLookup.Remove(process); } } if (StatusChanged != null) StatusChanged(process, status); }
private void OnProgress(AbstractBackgroundProcess process, double progress) { if (Progress != null) Progress(process, progress); }
public void WaitFor(AbstractBackgroundProcess process) { if (!activeProcesses.Contains(process)) return; while (process.Status == ProcessStatus.INITIALIZED || process.Status == ProcessStatus.RUNNING) { Thread.Sleep(100); } }
public void StartProcess(AbstractBackgroundProcess process) { lock (activeProcesses) if (!activeProcesses.Contains(process)) { activeProcesses.Add(process); OnStatusChanged(process, process.Status); process.StatusChanged += statusChangedDelegate; process.Progress += progressDelegate; Thread thread = new Thread(new ThreadStart(process.WorkRunner)); thread.Name = process.Name; threadLookup[process] = thread; thread.Start(); } }
/// <summary> /// Display metadata background refresh % compete as progress bar and text percentage /// </summary> /// <param name="process"></param> /// <param name="progress"></param> void ProcessManager_Progress(AbstractBackgroundProcess process, double progress) { if (process.Name == "MediaInfo Updater") { if (MetadataProgressBar != null) { if (progress == 0.0) { MetadataProgressBar.Percentage = 0; GUIPropertyManager.SetProperty("#mvCentral.Metadata.Scan.Active", "false"); GUIControl.HideControl(GetID, MetadataProgressBar.GetID); } else if (progress >= 100.0) GUIPropertyManager.SetProperty("#mvCentral.Metadata.Scan.Active", "false"); else { SetProperty("#mvCentral.Metadata.Update.Progress", string.Format("{0:0.0%} {1}", (progress / 100), Localization.Compete)); GUIPropertyManager.SetProperty("#mvCentral.Metadata.Scan.Active", "true"); MetadataProgressBar.Percentage = (float)progress; } } else { GUIPropertyManager.SetProperty("#mvCentral.Metadata.Scan.Active", "false"); SetProperty("#mvCentral.Metadata.Update.Progress", string.Format("{0:0.0%} {1}", 0, Localization.Compete)); } GUIPropertyManager.Changed = true; } }