C#下载程序冻结直到完成

FJa*_*Jam 1 c#

我的图像下载程序遇到问题.当我运行它时,它会冻结,直到下载完所有图像.标签改变但是图片框没有,我甚至无法移动程序.

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)

jrb*_*rly 7

你的申请冻结的原因是因为这些方面:

 wc.DownloadFile(m.Value, @downloadDest + "\\"+ mastercount + ".jpeg");
 Thread.Sleep(1000);
Run Code Online (Sandbox Code Playgroud)

您正在运行该代码Main ThreadUI Thread因此没有用户界面的操作可以在上面的代码执行进行.为了解决这个问题,你应该研究一下线程.一个好的开始是BackgroundWorker

见下文:

也可以看看: