Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#后台工作人员报告进度Int32?_C# - Fatal编程技术网

C#后台工作人员报告进度Int32?

C#后台工作人员报告进度Int32?,c#,C#,我想在UI中显示从BackgroundWorker到ProgressBar的进度。我不明白的是,为什么BackgroundWorker的ReportProgress函数采用Int32,而ProgressBar可以采用double值表示进度。我的过程非常复杂,我需要进行十进制进度更新。如果我必须不断地将所有内容调整到最接近的整数,那就没用了。有人能建议我如何解决这个问题吗?可以采用可选的UserState值。您可以将任何您想要的内容传递给此文件(例如,包括双精度值)。使用ReportProgres

我想在UI中显示从
BackgroundWorker
ProgressBar
的进度。我不明白的是,为什么
BackgroundWorker
ReportProgress
函数采用
Int32
,而
ProgressBar
可以采用
double
值表示进度。我的过程非常复杂,我需要进行十进制进度更新。如果我必须不断地将所有内容调整到最接近的整数,那就没用了。有人能建议我如何解决这个问题吗?

可以采用可选的
UserState
值。您可以将任何您想要的内容传递给此文件(例如,包括双精度值)。使用

ReportProgress设置它还有第二个变量,其中它将对象作为附加参数:

public void ReportProgress(
    int percentProgress,
    Object userState
)
只需将您的
double
作为userState对象传递即可


另请注意:您确定进度条的像素太多,需要一个
double
来枚举它们吗?

它是一个Int32,但也限制在0..100(%)范围内。但这是针对用户的“分辨率”,应该就足够了。