我的图片下载程序有问题。当我运行它时,它会卡住,直到所有图像都下载完毕。标签改变了,但图片框没有改变,我什至无法移动程序。
foreach (Match m in ms)
{
label3.Text = m.Value;
mastercount++;
pictureBox1.ImageLocation = m.Value;
try
{
WebClient wc = new WebClient();
wc.DownloadFile(m.Value, @downloadDest + "\\"+ mastercount + ".jpeg");
Thread.Sleep(1000);
}
catch (Exception x)
{
label3.Text = "Failed to download image" + m.Value;
}
}
最佳答案
您的应用程序卡住的原因是因为这些行:
wc.DownloadFile(m.Value, @downloadDest + "\\"+ mastercount + ".jpeg");
Thread.Sleep(1000);
您正在 Main Thread
或 UI Thread
上运行此代码,因此在执行上述代码时无法执行任何用户界面操作。为了解决这个问题,您应该研究线程。 BackgroundWorker
见下文:
另请参阅:
关于C# 下载程序卡住直到完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17911040/