c# webclient+thread判断下载是否完成

try{//点击下载stringstr=this.listView1.SelectedItems[0].Text;stringstr1=this.listView1.Se... try
{
//点击下载
string str = this.listView1.SelectedItems[0].Text;
string str1 = this.listView1.SelectedItems[0].SubItems[2].Text;
string str2 = str + "\\" + str1;
ThreadStart st = new ThreadStart(delegate()
{
WebClient web = new WebClient();
web.Credentials = new NetworkCredential("caojian", "kancuo1");
web.DownloadFile("ftp://172.28.37.34/" + str1 + "/" + str, dir + "/" + str);
});
Thread tt = new Thread(st);
tt.Start();
MessageBox.Show("下载完成");
}
catch (Exception)
{
MessageBox.Show("下载失败,请联系管理员检查服务器运行状态");
}

请问我怎么才能智能判断下载是否完成呢?现在只要点了下载就提示完成了
展开
 我来答
百度网友13eda02
推荐于2016-01-14 · TA获得超过778个赞
知道小有建树答主
回答量:1048
采纳率:77%
帮助的人:366万
展开全部
WebClient ws = new WebClient();
//绑定下载事件,显示当前进度
ws.DownloadProgressChanged += new DownloadProgressChangedEventHandler(OnDownloadProgressChanged);
//绑定下载完成事件,进行完成提示
ws.DownloadFileCompleted += new AsyncCompletedEventHandler(OnDownloadFileCompleted);
ws.DownloadFileAsync下载,然后在事件里处理进度和完成通知
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
syht2000
高粉答主

2013-06-03 · 关注我不会让你失望
知道大有可为答主
回答量:3万
采纳率:79%
帮助的人:1.4亿
展开全部
在tt.start();后加一行
while (tt.IsAlive) { Application.DoEvents(); }
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式