delphi idftp 多线程(同事下载多个文件)可以实现吗?

hswhjq 2011-09-30 03:28:31
如题
...全文
171 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hswhjq 2011-09-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 bdmh 的回复:]

可以但是要同步,或者每个线程单独创建一个idftp
[/Quote]
大侠,我是用每个线程单独创建idftp的方式,可是实现上好像有点问题
hswhjq 2011-09-30
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 m617105 的回复:]

可以。。。。。
[/Quote]

我是用了一个循环来创建线程,但是结果都是一个文件一个文件的在下载,不知道哪里有问题
bdmh 2011-09-30
  • 打赏
  • 举报
回复
可以但是要同步,或者每个线程单独创建一个idftp
jayqiang 2011-09-30
  • 打赏
  • 举报
回复
这完全可以的!比如你可以一个文件就开一个线程去下载它!
浩南_哥 2011-09-30
  • 打赏
  • 举报
回复
可以。。。。。
Delphi线程池实现多线程FTP分段下载组件 by :renshouren mail:114032666@qq.com QQ:114032666 2019.10.05 使用的组件 1、TIdFTP Indy FTP客户端 2、TThreadsPool 线程池 工作原理及流程 调用本单元,将自动在程序初始化时生成线程池TThreadPoolDown实例 Share_ThreadPool_FTPDown 一、外部调用方法 外部只需要一次性调用 FtpDown() 函数向线程池加入下载任务,下载任务执行中的事件会通过调用时注册的 回调函数 AFtpDownEvent 进行通知。 二、内部工作流程 1、FtpDown()函数将调用TThreadPoolDown.AddFtpDown() ,然后调用TADownFileObj.MakeGetFileSizeObj()分配线程任务 本过程中,将向回调函数 AFtpDownEvent 触发 HEM_ADDURL 事件通知 2、工作线程调用任务对象TFTPHeadObj.DoThreadExecute 过程获取远程文件大小 备注:该功能实际使用到FTP命令SIZE,该命令一些老版本FTP服务器有可能不支持 本过程中,若获取文件大小成功,将向回调函数 AFtpDownEvent 触发 HEM_GETSIZE 事件通知, 若失败,则触发 HEM_ERROR 事件通知 3、得到远程文件大小后,调用TADownFileObj.MakeGetObjs(),分配获取远程文件线程任务 本过程中,开始时,将向回调函数 AFtpDownEvent 触发 HEM_WORKBEGIN 事件通知 在接收数据时,向回调函数 AFtpDownEvent 触发 HEM_WORK 事件通知 4、工作线程调用任务对象 TFTPGetObj.DoThreadExecute 实际下载远程文件数据块 每一个数据块下载任务完成后,触发 HEM_BLOCKOK 事件通知 5、所有数据块完成后,将调用 DoDownloadOK 函数,触发 HEM_DOWNOK 事件通知

5,930

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧