如何在不冻结应用程序的情况下从 URL 在 C# Winforms 中加载图像?
How to load an image in C# Winforms from an URL without application freezing?
我在 foreach 中有一些 PictureBox 对象。
它循环所有 PictureBoxes 并为它们加载来自 Internet 的图像。每个 PictureBox 都有不同的图片下载。
它运行良好,但问题是应用程序冻结,直到所有图像加载完毕。
有没有办法让它们一个一个出现,而不是同时出现?
代码:
index++;
lpb[index].Load(url);
//lpb is a list of PictureBoxes (List<PictureBox>)
谢谢!
使用LoadAsync instead of Load
. As the docs explain you should also set the WaitOnLoad属性为假
LoadProgressChanged and 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");
}
我在 foreach 中有一些 PictureBox 对象。 它循环所有 PictureBoxes 并为它们加载来自 Internet 的图像。每个 PictureBox 都有不同的图片下载。 它运行良好,但问题是应用程序冻结,直到所有图像加载完毕。 有没有办法让它们一个一个出现,而不是同时出现?
代码:
index++;
lpb[index].Load(url);
//lpb is a list of PictureBoxes (List<PictureBox>)
谢谢!
使用LoadAsync instead of Load
. As the docs explain you should also set the WaitOnLoad属性为假
LoadProgressChanged and 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");
}