c# For循环几秒钟后立即完成



我有这个代码绘制矩形到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()停止工作。

Using Refresh();是缓慢而无效的。而是使用pictureBox1。Image = pictureBox1.Image;我使用秒表与while循环等待几毫秒的减慢循环和设置固定的间隔,即使循环需要更多的时间比其他。

谢谢@jdweng(好观点)和@TaW(很多好的信息)。

最新更新