我在PictureBox
中有一些foreach
个对象。
它将循环所有PictureBox
,并从Internet为其加载图像。每个PictureBox
都有不同的图片下载。
效果很好,但是问题是应用程序冻结,直到所有图像加载完毕。
是否有一种方法可以使它们一次出现,而不是同时出现?
代码:
index++;
lpb[index].Load(url);
//lpb is a list of PictureBoxes (List<PictureBox>)
答案 0 :(得分:2)
使用LoadAsync代替Load
。如文档所述,您还应该将WaitOnLoad属性设置为false。
LoadProgressChanged和LoadCompleted事件可用于跟踪进度。
在文档示例中:
private void startButton_Click(object sender, EventArgs e)
{
// Ensure WaitOnLoad is false.
pictureBox1.WaitOnLoad = false;
// Load the image asynchronously.
pictureBox1.LoadAsync(@"http://localhost/print.gif");
}