C# for循环几秒后恒速立即完成

C# For loop after few seconds constant speed immediately complete

我有这个代码可以将矩形一个一个地绘制到 ImageBox 中。

        g = Graphics.FromImage(pictureBox1.Image);
        int size = 40;
        int squares = 0;

        for (int H = 0; H < 1490; H += size)
        {
            for (int W = 0; W < 1490; W += size)
            {
                var rectangle = new Rectangle(W, H, size, size);
                g.DrawRectangle(new Pen(Color.Green, 3), rectangle);
                this.Refresh();
                squares++;
                label1.Text = squares.ToString();
            }
        }

在 Visual Studio 中,一切正常,但当我构建它时,它适用于前 300 ~ 个矩形,然后滞后并立即完成。

我认为 Refresh() 停止工作了。

使用刷新();缓慢且无效。而是使用一些东西 pictureBox1.Image = pictureBox1.Image;。我使用带有 while 循环的 StopWatch 等待几毫秒以减慢循环并设置固定间隔,即使循环比其他循环花费更多时间。

感谢@jdweng(好点)和@TaW(很多有用的信息)。