C# 下载程序卡住直到完成

标签 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;
    }
}

最佳答案

您的应用程序卡住的原因是因为这些行:

 wc.DownloadFile(m.Value, @downloadDest + "\\"+ mastercount + ".jpeg");
 Thread.Sleep(1000);

您正在 Main ThreadUI Thread 上运行此代码,因此在执行上述代码时无法执行任何用户界面操作。为了解决这个问题,您应该研究线程。 BackgroundWorker

是一个好的开始

见下文:

另请参阅:

关于C# 下载程序卡住直到完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17911040/

相关文章:

c# - 两个winforms一个模态的对话框情况

c# - 如何安全地十六进制编辑一个exe文件?

c# - 为什么 ValidateValueCallback 被调用了两次?

c# - WPF DataGrid 中基于基础数据集(及其类型)的动态 DataGrid 列

c# - WPF MessageBox 关闭而不执行任何操作

c# - 有趣的 ASP.NET 生命周期事件触发错误

c# WebRequest 到 Google API 错误请求

c# - 动态与强类型元素

c# - XSLT,将所有负节点和所有节点求和为绝对值

c# - WPF ScrollViewer 端