线程池开源纯API无模块支持库

易语言 2020-07-24 01:40:26

线程池开源纯API无模块支持库

.子程序 取类方法指针, 整数型, 公开, 生成类回调,只能在类里使用
.参数 nIndex, 整数型, , 方法序号,从1开始
注意:本线程池会在运行时多创建一条控制线程。所以真实线程数量是(线程数量+1)的。

.子程序 销毁, 逻辑型, 公开, 在程序结束前必须调用!
.参数 等待时间, 整数型, 可空, 等待时间前让线程销毁,然后再逐个Exit 默认为1000ms
.局部变量 i, 整数型

' 本来想加个缓冲时间,让一些线程自动销毁,但是WaitforMO(),最多只能等待64条线程。
类_线程池运行中 = 假
.计次循环首 (取数组成员数 (类_线程信息_集合), i)
API_PostThreadMessage (类_线程信息_集合 [i].id, #线程_quit, 0, 0)
.计次循环尾 ()
API_PostThreadMessage (类_线程信息_专注任务列表.id, #线程_quit, 0, 0)
.如果真 (是否为空 (等待时间) = 假)
API_Sleep (等待时间)
.如果真结束
API_Sleep (1000)
.计次循环首 (取数组成员数 (类_线程信息_集合), i)
API_ExitThread (类_线程信息_集合 [i].h)
.计次循环尾 ()
API_ExitThread (类_线程信息_专注任务列表.h)
清除数组 (类_线程信息_运行中)
清除数组 (类_线程信息_集合)
清除数组 (类_线程任务_队列)
返回 (真)