我正在从FTP站点(异步)下载文件并需要更新进度栏。我已阅读MS文档,指出可以完成的是WebClient类的GetWebRequest()是ovverriden,因此'UsePassive'属性设置为'false'。我做了这个,但'DownloadProgressChanged'事件参数ProgressPercentage总是=='0'。如何从FTP显示下载进度
有人能告诉我如何让这个参数开始返回值吗?
这是下载方法:
FTPClient request = new FTPClient();
request.Credentials = new NetworkCredential(user, password);
request.DownloadProgressChanged += UpdateProgress;
request.DownloadFileAsync(ftpepath,destinationpath);
这是FTPClient(我在哪里重写GetWebRequest()):
class FTPClient : WebClient
{
protected override WebRequest GetWebRequest(System.Uri address)
{
FtpWebRequest req = (FtpWebRequest) base.GetWebRequest(address);
req.UsePassive = false;
return req;
}
}
而且我的回调,如果有帮助:
void UpdateProgress(object sender, DownloadProgressChangedEventArgs e)
{
dwnProgress.Value = e.ProgressPercentage;
dwnprcnt.Text = PercentProgress.ToString() + "%";
}
表明你要调用的函数在一个单独的线程,因此不会阻止该应用程序的UI是否它或网页的进展。 – 2010-02-24 18:55:14