c# - 在 C#4 中向 ProgressChanged 事件添加额外参数

标签 c# webclient

这是我的代码(简单下载器):

public void DownloadFile(string urlAddress, string location)
    {
        using (webClient = new WebClient())
        {
            webClient.DownloadFileCompleted += new AsyncCompletedEventHandler(Completed);
            webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
            Uri URL = urlAddress.StartsWith("http://", StringComparison.OrdinalIgnoreCase) ? new Uri(urlAddress) : new Uri("http://" + urlAddress);
            try
            {
                webClient.DownloadFileAsync(URL, location);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }

这是我的问题:

如何向我的 ProgressChanged 事件添加额外参数 (int RowNumber)?我的意思是这样的:

private void ProgressChanged(object sender, DownloadProgressChangedEventArgs e, int RowNumber)
    {
           // Other codes here
    }

& 这是 VS2010 给我的错误:

No overload for 'ProgressChanged' matches delegate 'System.Net.DownloadProgressChangedEventHandler'

我应该重写DownloadProgressChangedEventHandler吗?!怎么办?!

感谢您帮助我。

最佳答案

您应该更改此设置:

webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);

与:

webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler((sender, e) => ProgressChanged(sender, e, RowNumber));

关于c# - 在 C#4 中向 ProgressChanged 事件添加额外参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27750150/

相关文章:

c# - 安卓.view.InflateException : Binary XML file line #1: Error inflating class <unknown> in Xamarin Studio

C#在哈希表中使用变量时找不到对象

c# - 如果文件大小超过 50MB,WebClient 不会完全下载文件

c# - WebClient DownloadString UTF-8 不显示国际字符

为每个请求启动 C# WebClient NTLM 身份验证

C# (429) 请求过多

c# - Lutz Roeder 的 HTML Writer 在 SaveHtml() 方法中只返回 2 个字符

c# - 我的内存在哪里?重新初始化数据表

c# - 具有过滤器和自动完成功能的组合框

spring - 将 Spring Boot 升级到 3.0.6 后,在 Mac M1 中无法从 Webclient 解析 oauth 端点