窗口程序集名 | 保 留 | 保 留 | 备 注 |
窗口程序集_启动窗口 | | | |
变量名 | 类 型 | 数组 | 备 注 |
线程池 | 鱼刺类_线程池 | |
_许可证 | 整数型 | |
线程池.
创建 (10, 真,
)_许可证 =
_创建进入许可证 ()
计次循环首 (10, index
)
线程池.
投递任务 (&子程序1,
_写内存文本 (“url” +
到文本 (index
)),
)
计次循环尾 ()网页_访问_对象 (_读内存文本 (url,
), , , , , , , , , , , , , , , , , ,
)_进入许可区 (_许可证
) _退出许可区 (_许可证
)
窗口程序集名 | 保 留 | 保 留 | 备 注 |
窗口程序集_启动窗口 | | | |
变量名 | 类 型 | 数组 | 备 注 |
线程池句柄 | 整数型 | |
请求队列 | 文本型 | 0 |
队列锁 | 整数型 | |
队列锁 =
线程_创建临界区 ()线程池句柄 =
线程池_创建 (10, 32
) |
异步发送请求 | | |
|
网址 | 文本型 | | | |
提交数据 | 文本型 | | | | 协议头 | 文本型 | | | |
任务数据 = 网址 + "|||" + 提交数据 + "|||" + 协议头
线程_进入临界区 (队列锁
)加入成员 (请求队列, 任务数据
)线程_离开临界区 (队列锁
) 线程池_投递任务 (线程池句柄, &工作线程, 0
)变量名 | 类 型 | 静态 | 数组 | 备 注 |
任务数据 | 文本型 | | |
任务数组 | 文本型 | | 0 |
线程_进入临界区 (队列锁
)
如果 (取数组成员数 (请求队列
) > 0
)
任务数组 =
分割文本 (请求队列
[1
], "|||",
)
删除成员 (请求队列, 1, 1
)
线程_离开临界区 (队列锁
)
返回 ()线程_离开临界区 (队列锁) 无阻塞HTTP请求 (任务数组
[1
], 任务数组
[2
], 任务数组
[3
])|
无阻塞HTTP请求 | | |
|
网址 | 文本型 | | | |
提交数据 | 文本型 | | | | 协议头 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
http | 对象 | | |
异步结果 | 整数型 | | |
http.
创建 ("MSXML2.XMLHTTP"
)http.
方法 ("open", "POST", 网址,
真) http.
方法 ("setRequestHeader", "Content-Type", "application/x-www-form-urlencoded"
)
如果 (协议头 ≠ ""
)
.局部变量 头数组, 文本型, , "0"

.局部变量 i, 整数型

头数组 =
分割文本 (协议头,
#换行符, )
计次循环首 (取数组成员数 (头数组
), i
)

.局部变量 键值, 文本型, , "0"


键值 =
分割文本 (头数组
[i
], ":",
)

如果 (取数组成员数 (键值
) ≥ 2
)


http.
方法 ("setRequestHeader",
删首尾空 (键值
[1
]),
删首尾空 (键值
[2
]))


计次循环尾 ()
http.
方法 ("send", 提交数据
)