向 C#4 中的 ProgressChanged 事件添加额外参数 [英] add extra parameter to ProgressChanged event in C#4

查看:34
本文介绍了向 C#4 中的 ProgressChanged 事件添加额外参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

Here is my code (Simple Downloader):

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);
            }
        }
    }

&这是我的问题:

& Here is my question:

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

How to add extra parameter (int RowNumber) to my ProgressChanged event? I mean like this:

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

&这是VS2010给我的错误:

& Here is the error that VS2010 gives me:

ProgressChanged"没有重载匹配委托'System.Net.DownloadProgressChangedEventHandler'

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

我应该覆盖 DownloadProgressChangedEventHandler 吗?!怎么样?!

should I override DownloadProgressChangedEventHandler?! how?!

谢谢你帮助我.

推荐答案

你应该改变这个:

webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);

与:

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

这篇关于向 C#4 中的 ProgressChanged 事件添加额外参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆