private void OnWorkerDoWork(object sender, DoWorkEventArgs e) { BackgroundWorker worker = sender as BackgroundWorker; TaskRunParameters parameters = e.Argument as TaskRunParameters; foreach (var item in parameters.Indices) { string fmt = "D" + parameters.Parameter; string addr = string.Format(parameters.Expression, item.ToString(fmt)); string locp = Program.GetLocalPath(addr, parameters.Destination); if (Program.Download(parameters.Client, addr, locp)) { ProgressMessage msg = new ProgressMessage(addr); worker.ReportProgress(0, msg); } else { addr = string.Format(parameters.Expression, item); if (Program.Download(parameters.Client, addr, locp)) { ProgressMessage msg = new ProgressMessage(addr); worker.ReportProgress(0, msg); } } } }
private void OnWorkerProgressChanged(object sender, ProgressChangedEventArgs e) { ProgressMessage m = e.UserState as ProgressMessage; if (m != null) { BeginInvoke(new Action(() => { AddToTaskList(m); ProgressBar.PerformStep(); })); } }
private void OnDispatcherProgressChanged(object sender, ProgressChangedEventArgs e) { ProgressMessage m = e.UserState as ProgressMessage; if (m != null) { AddToTaskList(m); } if (e.ProgressPercentage == 100) { ProgressBar.Value = Parameters.TotalCount; } }