Exemplo n.º 1
0
 /// <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);
     }
 }