C#后台工作人员报告进度Int32?
我想在UI中显示从C#后台工作人员报告进度Int32?,c#,C#,我想在UI中显示从BackgroundWorker到ProgressBar的进度。我不明白的是,为什么BackgroundWorker的ReportProgress函数采用Int32,而ProgressBar可以采用double值表示进度。我的过程非常复杂,我需要进行十进制进度更新。如果我必须不断地将所有内容调整到最接近的整数,那就没用了。有人能建议我如何解决这个问题吗?可以采用可选的UserState值。您可以将任何您想要的内容传递给此文件(例如,包括双精度值)。使用ReportProgres
BackgroundWorker
到ProgressBar
的进度。我不明白的是,为什么BackgroundWorker
的ReportProgress
函数采用Int32
,而ProgressBar
可以采用double
值表示进度。我的过程非常复杂,我需要进行十进制进度更新。如果我必须不断地将所有内容调整到最接近的整数,那就没用了。有人能建议我如何解决这个问题吗?可以采用可选的UserState
值。您可以将任何您想要的内容传递给此文件(例如,包括双精度值)。使用ReportProgress设置它还有第二个变量,其中它将对象作为附加参数:
public void ReportProgress(
int percentProgress,
Object userState
)
只需将您的double
作为userState对象传递即可
另请注意:您确定进度条的像素太多,需要一个
double
来枚举它们吗?它是一个Int32,但也限制在0..100(%)范围内。但这是针对用户的“分辨率”,应该就足够了。