窗口程序集名 | 保 留 | 保 留 | 备 注 |
窗口程序集_启动窗口 | | | |
变量名 | 类 型 | 数组 | 备 注 |
ex | EXCEL程序对象 | |
ex1 | EXCEL程序对象 | |
线程池 | 鱼刺类_线程池Ex | |
单元格 | 单元格对象 | |
符合女性 | 文本型 | 0 |
变量名 | 类 型 | 静态 | 数组 | 备 注 |
文件名 | 文本型 | | |
i | 整数型 | | |
n | 整数型 | | |
总任务数 | 整数型 | | |
当前任务数 | 整数型 | | |
空闲数 | 整数型 | | |
并发线程 | 整数型 | | |
文件名 =
取运行目录 () +
“\1.xlsx”ex.
创建 (真)ex.
打开文件 (文件名, , , ,
)单元格.
置程序 (ex
)总任务数 = 单元格.
取已用行数 ()线程_启动 (&提取信息, 1,
)并发线程 = 10
当前任务数 = 总任务数
n = 0
如果真 (取反 (线程池.
创建 (并发线程, 并发线程,
))
)
信息框 (“线程池创建失败!”, 64, ,
)
返回 ()
判断循环首 (n < 总任务数
)
空闲数 = 线程池.
取_空闲线程数 ()
如果真 (空闲数 > 0
)

当前任务数 = 总任务数 - n


如果真 (当前任务数 > 空闲数
)


当前任务数 = 空闲数


计次循环首 (当前任务数,
)


n = n + 1



线程池.
投递任务 (&提取信息, n
)

计次循环尾 ()
线程池.等待任务动态 ()
判断循环尾 ()
判断循环首 (线程池.
取_是否空闲 () =
假)
如果真 (线程池.
取_状态 () ≠
#线程池_正在工作 )
跳出循环 ()
线程池.等待任务动态 (100)
判断循环尾 ()线程池.
销毁 ()线程_初始化COM库 ()调试输出 (单元格.
取纯文本 (1, 2, 索引
))
线程_取消COM库 ()ex.
创建 ()ex1.
创建 ()