在Windows窗体中更新UI进度栏的最佳方法是什么?

时间:2019-01-10 10:47:19

标签: c# visual-studio winforms

我有一个程序,其中有一个正在处理的请求列表。 例如:

第一个请求 { 做一些操作 }

第二个请求 { 做一些操作 } ...... ...

...最终要求 { 做一些手术 }

我希望Windows表单中的进度栏​​在处理每个请求时相应地填充。

我知道多线程,异步等待是动态更新UI的几个选项。

哪种是最好的方法,以使CPU负载最小?

1 个答案:

答案 0 :(得分:1)

在有任务或无任务的情况下使用async / await执行长时间运行的操作,然后使用Progress<int>向UI报告进度。 @Stephen Cleary的博客上有一个示例:

Task.Run vs BackgroundWorker, Round 5: Reporting Progress