C#窗体多线程问题

.Net技术 码拜 8年前 (2016-03-09) 855次浏览
c# 多线程下载文件,怎么样知道该线程下载完成,然后继续下一个下载,直到全部任务完成
例如本人开了一个线程要下载三个文件
怎么样让这一个线程依次下载完这三个文件?
解决方案

4

你可以定义一个通知事件,当下载完成后触发这个事件,通知开启下一个进程。
但是本人有点不清楚,既然三个文件是依次下载的,为什么不放到一个线程里面顺序下载呢,而是要开三个线程?

2

委托作为回调函数

2

引用 3 楼 qq_30942547 的回复:

WebClient webclient = new WebClient();
webclient.DownloadFile(new Uri(“http://www.essexinternational.org.cn/yunteng-setup.exe”), @”D:\1\1.exe”);
WebClient webclient = new WebClient();
webclient.DownloadFile(new Uri(“http://www.essexinternational.org.cn/yunteng-setup.exe”), @”D:\1\1.exe”);
WebClient webclient = new WebClient();
webclient.DownloadFile(new Uri(“http://www.essexinternational.org.cn/yunteng-setup.exe”), @”D:\1\1.exe”);

这样是可以的。

30

引用 3 楼 qq_30942547 的回复:
Quote: 引用 1 楼 Libby1984 的回复:

你可以定义一个通知事件,当下载完成后触发这个事件,通知开启下一个进程。
但是本人有点不清楚,既然三个文件是依次下载的,为什么不放到一个线程里面顺序下载呢,而是要开三个线程?

怎么样在一个线程里顺序下载?
是不是在一个线程里,这样写就可以了?
WebClient webclient = new WebClient();
webclient.DownloadFile(new Uri(“http://www.essexinternational.org.cn/yunteng-setup.exe”), @”D:\1\1.exe”);
WebClient webclient = new WebClient();
webclient.DownloadFile(new Uri(“http://www.essexinternational.org.cn/yunteng-setup.exe”), @”D:\1\1.exe”);
WebClient webclient = new WebClient();
webclient.DownloadFile(new Uri(“http://www.essexinternational.org.cn/yunteng-setup.exe”), @”D:\1\1.exe”);

是的,在一个线程里通讯会阻塞后面的程序执行,就是顺序下载。

2

跟线程没任何关系。

CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明C#窗体多线程问题
喜欢 (0)
[1034331897@qq.com]
分享 (0)