在C#4中为ProgressChanged事件添加额外参数
这是我的代码(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); } } }
这是我的问题:
如何在ProgressChanged
事件中添加额外的参数( int RowNumber
)? 我的意思是这样的:
private void ProgressChanged(object sender, DownloadProgressChangedEventArgs e, int RowNumber) { // Other codes here }
这是VS2010给我的错误:
‘ProgressChanged’没有重载匹配委托’System.Net.DownloadProgressChangedEventHandler’
我应该覆盖DownloadProgressChangedEventHandler
吗? 怎么样?!
谢谢你的协助。
你应该改变这个:
webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler(ProgressChanged);
有:
webClient.DownloadProgressChanged += new DownloadProgressChangedEventHandler((sender, e) => ProgressChanged(sender, e, RowNumber));