后台工作者的 ReportProgress 百分比参数 C#

Background Worker's ReportProgress percentage argument C#

有没有办法将Double变量类型提供给Background WorkerReportProgress方法,以便百分比以小数点显示? (例如 12.07%) 还是我应该简单地将它作为 UserState 参数传递然后进行转换? 默认允许在此方法上输入 Double 不是更好吗?

根据 MSDN 没有 BackgroundWorker.ReportProgress 方法重载占用 Double 进度百分比。

而且我认为没有任何必要。

但是有几种方法可以做到如果你真的需要:

  1. 956 (95.6%) 格式传递整数,并在显示时简单地除法。
  2. 使用 userState 参数。

最简单的方法是传递 0 到 10000 之间的数字,而不是 0 到 100 之间的数字。

然后将它们除以 100d 得到 2 位小数精度百分比。

有时我发现自己甚至传递枚举值而不是百分比。