小编Dom*_*per的帖子

如何基于嵌套循环中的多个变量报告进度(对于进度条)?

我有一个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)

c# math logic backgroundworker progress-bar

6
推荐指数
1
解决办法
448
查看次数

标签 统计

backgroundworker ×1

c# ×1

logic ×1

math ×1

progress-bar ×1