示例#1
0
        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);
                    }
                }
            }
        }
示例#2
0
        private void OnWorkerProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            ProgressMessage m = e.UserState as ProgressMessage;

            if (m != null)
            {
                BeginInvoke(new Action(() =>
                {
                    AddToTaskList(m);
                    ProgressBar.PerformStep();
                }));
            }
        }
示例#3
0
        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;
            }
        }
示例#4
0
        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);
                    }
                }
            }
        }