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(很多有用的信息)。
我有这个代码可以将矩形一个一个地绘制到 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(很多有用的信息)。