我有一个BackgroundWorker和一个ProgressBar.工作时,BackgroundWorker会运行三重for循环并将进度报告给ProgressBar.
目前,报告的进度只是最外层循环(xProgress)的进度,它起作用,但运行不顺畅.目标是让ProgressBar还考虑内部循环的进度百分比,以便ProgressBar更顺畅,更准确地更新.
DoWork方法:
private void bgw_DoWork(object sender, DoWorkEventArgs e)
{
int xMax, yMax, zMax;
xMax = 10;
for (int x = 1; x <= xMax; x++)
{
yMax = 5;
for (int y = 1; y <= yMax; y++)
{
zMax = new Random().Next(50, 100);
for (int z = 1; z <= zMax; z++)
{
Thread.Sleep(5); /// The process
double xProgress = (double)x / (double)xMax;
double yProgress = (double)y / (double)yMax;
double zProgress = (double)z / (double)zMax;
/// The progress …Run Code Online (Sandbox Code Playgroud)