Multithreading 如何使用BeginInvoke方法更新进度条?

Multithreading 如何使用BeginInvoke方法更新进度条?,multithreading,Multithreading,我读了上面几个问题的答案,但不起作用? 下面是我在执行另一项任务时用来更新进度条的代码 engine.ConvertProgressEvent+=ConvertProgressEvent; 转换(输入文件,输出文件) 1句话将调用ConvertProgressEvent方法 i、 e 两个句子用于将一个视频文件转换为另一个视频文件。进度条必须根据处理的转换细节进行更新 但这不起作用,进度条是在转换完成后更新的。 请给我同步更新进度条的解决方案 如果在调试器中检查代码会发生什么情况?请使用“调试+

我读了上面几个问题的答案,但不起作用? 下面是我在执行另一项任务时用来更新进度条的代码

engine.ConvertProgressEvent+=ConvertProgressEvent; 转换(输入文件,输出文件)

1句话将调用ConvertProgressEvent方法

i、 e

两个句子用于将一个视频文件转换为另一个视频文件。进度条必须根据处理的转换细节进行更新

但这不起作用,进度条是在转换完成后更新的。
请给我同步更新进度条的解决方案

如果在调试器中检查代码会发生什么情况?请使用“调试+窗口+线程调试”窗口。在列表中找到主UI线程双击它并查看调用堆栈窗口。这是在做一些不明智的事情,比如等待转换完成。是的,这是在等待转换完成。请告诉我如何在转换的同时更新进度条
enter code here

  private void ConvertProgressEvent(object sender,ConvertProgressEventArgs e)
 {
 int percent = (int)(100 * (e.ProcessedDuration.TotalSeconds /              e.TotalDuration.TotalSeconds))
 percent = Math.Max(0, percent);
 percent = Math.Min(100, percennt);
 BeginInvoke(new UpdateProgressDelegate(UpdateProgress), percent);
 } 

 private delegate void UpdateProgressDelegate(int percent);
 private void UpdateProgress(int percent)
   {
   progressBar1.Value = percent;
   }