我的图像下载程序遇到问题.当我运行它时,它会冻结,直到下载完所有图像.标签改变但是图片框没有,我甚至无法移动程序.
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;
}
}
Run Code Online (Sandbox Code Playgroud)
你的申请冻结的原因是因为这些方面:
wc.DownloadFile(m.Value, @downloadDest + "\\"+ mastercount + ".jpeg");
Thread.Sleep(1000);
Run Code Online (Sandbox Code Playgroud)
您正在运行该代码Main Thread或UI Thread因此没有用户界面的操作可以在上面的代码执行进行.为了解决这个问题,你应该研究一下线程.一个好的开始是BackgroundWorker
见下文:
也可以看看: