/// <summary> /// 报告processor的处理进度。 /// </summary> /// <param name="jobItem"></param> /// <param name="processingInfo"></param> /// <param name="e"></param> /// <returns>如果处理顺利完成,返回true;如果被用户中止或中途出错,返回false。</returns> private bool ProcessingReport(JobItem jobItem, IMediaProcessingInfo processingInfo, DoWorkEventArgs e) { while (true) { if (this.backgroundWorker.CancellationPending) { jobItem.QuitProcessing(); this.SetJobEventAndReportProgress(jobItem, JobEvent.QuitAllProcessing); return(false); } if (processingInfo.HasExited) { if (processingInfo.Progress != 100) { this.SetJobEventAndReportProgress(jobItem, JobEvent.Error); MessageBox.Show("发生了一个错误。编码器/混流器未完成工作就退出了。", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } this.SynchReportProgress(jobItem); return(true); } this.SynchReportProgress(jobItem); Thread.Sleep(500); } }