多线程进度下载文件源码,鱼刺模块队列和信号量的运用

多线程进度下载文件源码,鱼刺模块队列和信号量的运用

.版本 2 .支持库 spec .程序集 _下载 .程序集变量 fileHandle, 整数型 .程序集变量 fileSize, 长整数型 .程序集变量 unit, 长整数型 .程序集变量 queue, 鱼刺类_队列 .程序集变量 FileUrl, 文本型 .程序集变量 lic, 鱼刺类_临界许可 .程序集变量 ok, 长整数型 .程序集变量 callBack, 子程序指针 .子程序 _初始化, , , 当基于本类的对象被创建后,此方法会被自动调用 unit = 512 × 1024 .子程序 _销毁, , , 当基于本类的对象被销毁前,此方法会被自动调用 .如果真 (fileHandle > 0) 关闭文件 (fileHandle) .如果真结束 .子程序 初始配置, 逻辑型, 公开 .参数 url, 文本型 .参数 filepath, 文本型 .参数 back, 子程序指针, 可空 .局部变量 http, WinHttp_中文版 .局部变量 resHeader, 文本型 .局部变量 bool, 逻辑型 http.打开 (“GET”, url, ) http.设置协议头 (“Range”, “bytes=0-1/”) http.发送 () resHeader = http.取所有协议头 () resHeader = 高级截取文本 (resHeader, “bytes 0-1/”, #换行符, , , , , ) fileSize = 到长整数 (resHeader) .如果真 (fileSize ≤ 0) 返回 (假) .如果真结束 bool = 写到文件 (filepath, 取空白字节集 (fileSize)) .如果真 (取反 (bool)) 返回 (假) .如果真结束 fileHandle = 打开文件 (filepath, , ) .如果真 (fileHandle = 0) 返回 (假) .如果真结束 分割 () FileUrl = url callBack = back 调试输出 (fileSize, unit, fileHandle) 返回 (真) .子程序 分割 .局部变量 i, 整数型 .局部变量 count, 整数型 queue.清空 () count = fileSize \ unit .计次循环首 (count, i) queue.压入文本 (到文本 ((i - 1) × unit) + “-” + 到文本 (i × unit - 1), ) .计次循环尾 () queue.压入文本 (到文本 ((i - 1) × unit) + “-” + 到文本 (fileSize), ) .子程序 下载, , 公开 .局部变量 temp, 文本型 .局部变量 start, 长整数型 .局部变量 end, 长整数型 .局部变量 bin, 字节集 .局部变量 http, WinHttp_中文版 .局部变量 bool, 逻辑型 .局部变量 size, 长整数型 .如果真 (queue.取队列长度 () = 0) 返回 () .如果真结束 queue.弹出文本 (temp) ' 0-499 start = 到长整数 (取左边文本 (temp, “-”)) end = 到长整数 (取右边文本 (temp, “-”)) http.打开 (“GET”, FileUrl, ) http.设置协议头 (“Range”, “bytes=” + temp) http.发送 () bin = http.取返回字节集 () size = 取字节集长度 (bin) .如果真 (size ≠ unit 且 size ≠ end - start) queue.压入文本 (temp, ) 返回 () .如果真结束 lic.进入 () bool = 移动读写位置 (fileHandle, #文件首, start) .如果真 (取反 (bool)) 调试输出 (“移动读写位置失败”) lic.退出 () 返回 () .如果真结束 bool = 写出字节集 (fileHandle, bin) .如果真 (取反 (bool)) 调试输出 (“写出字节集失败”) lic.退出 () 返回 () .如果真结束 lic.退出 () 原子_运算 (ok, size) .如果真 (到整数 (callBack) > 0) 调用子程序 (callBack, , , ok, fileSize) .如果真结束 ' 调试输出 (size, ok, fileSize) .如果真 (ok = fileSize) 关闭文件 (fileHandle) fileHandle = 0 .如果真结束 .子程序 取状态, 逻辑型, 公开 返回 (fileHandle = 0)
相关文件下载地址
©下载资源版权归作者所有;本站所有资源均来源于网络,仅供学习使用,请支持正版!

多线程进度下载文件源码,鱼刺模块队列和信号量的运用》有0个想法

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注