线程DownloadFileAsync

时间:2014-11-30 16:08:09

标签: c# wpf multithreading downloadfileasync

我可能非常愚蠢,但如何解决以下问题? 当我想下载许多文件时,我使用链接列表和线程WebClient.DownloadFileAsync。但我希望在此过程中更新我的UI(ProgressBar),因此我使用 this answer 来部分解决问题。

但是当我应用这段代码时

void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
    {
        this.Dispatcher.BeginInvoke((Delegate MethodInvoker)
        {
            double bytesIn = double.Parse(e.BytesReceived.ToString());
            double totalBytes = double.Parse(e.TotalBytesToReceive.ToString());
            double percentage = bytesIn / totalBytes * 100;
            thebar.Value = int.Parse(Math.Truncate(percentage).ToString());
        });
    }

我得到“'System.Delegate'是'类型'但是像'变量'一样使用”错误。

1 个答案:

答案 0 :(得分:1)

您可以调用Dispatcher.BeginInvoke()在WPF UI线程上运行委托。