|
为什么这个多线程相比循环运行慢特别多,比如有400个文件,循环时间是24.8秒,多线程要60秒
单独处理一个文件是60毫秒,
测试发现,多线程处理每个文件的时间一直在增长,就好像是单线程?
窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集_启动窗口 | | | | 变量名 | 类 型 | 数组 | 备 注 | 集_线程池Ex_颜色替换 | 鱼刺类_线程池Ex | | 集_文本数组_png_颜色叠加 | 文本型 | 0 |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_文本 | 文本型 | | | 局_文件数组 | 文本型 | | 0 | i | 整数型 | | | 局_颜色值 | 整数型 | | | 启动时间 | | | | Gdiplus初始化 ()启动时间 = 取启动时间 ()局_文本 = “F:\2” . . 调试输出 (取启动时间 () - 启动时间 )启动时间 = 取启动时间 ()Png_颜色替换_批量 (局_文本, “ffffff”)调试输出 (取启动时间 () - 启动时间 )结束 ()|
Png_颜色替换 | 逻辑型 | | |
参_图片 | 文本型 | | | | 参_生成后Png | 文本型 | | | | 参_颜色值 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_颜色值 | 文本型 | | | 局_生成后文件 | 文本型 | | | GP位图 | GP位图 | | | 局_图像宽度 | 整数型 | | | 局_图像高度 | 整数型 | | | x | 整数型 | | | y | 整数型 | | | 局_点颜色 | 整数型 | | | 局_透明度 | 字节型 | | | 局_点颜色_新 | 整数型 | | | 局_备份文件 | 文本型 | | | 局_字节集 | 字节集 | | | 启动时间 | 整数型 | | |
启动时间 = 取启动时间 ()如果真 (文件是否存在 (参_图片 ) = 假)返回 (假)如果真 (文件_取扩展名 (参_图片 ) ≠ “.png”)返回 (假)局_生成后文件 = 参_生成后Png图片_取参数YZC (参_图片, 局_图像宽度, 局_图像高度, 局_字节集, )如果真 (是否为空 (参_生成后Png ) = 真 或 参_生成后Png = “”)局_生成后文件 = 参_图片 局_颜色值 = 参_颜色值 如果真 (取文本长度 (局_颜色值 ) = 8 )局_颜色值 = 取文本右边 (局_颜色值, 6 )GP位图. 创建自字节集 (局_字节集, )GP位图. 置分辨率 (72, 72 )计次循环首 (局_图像宽度, x )计次循环首 (局_图像高度, y )局_点颜色 = GP位图. 取某点颜色 (x - 1, y - 1 )ARGB到RGB (局_点颜色, 局_透明度 )局_点颜色_新 = RGB到ARGB (网页_取十进制颜色值 (参_颜色值 ), 局_透明度 )GP位图. 置某点颜色 (x - 1, y - 1, 局_点颜色_新 )y = y + 1 计次循环尾 ()x = x + 1 计次循环尾 ()GP位图. 保存到文件 (局_生成后文件, #图像格式_PNG, )GP位图. 销毁 ()_延迟 (10 ) 返回 (真)|
图片_取参数YZC | | | |
参_文件 | 文本型 | | | | 宽度 | 整数型 | | | | 高度 | 整数型 | | | | 参考_字节集 | 字节集 | | | | 返回文件大小 | 长整数型 | | | | 如果 (参_文件 = “”)GP图像. 创建自字节集 (参考_字节集, )GP图像. 创建自文件 (参_文件, )GP图像.置分辨率 (72, 72)宽度 = GP图像. 取宽度 ()高度 = GP图像. 取高度 ()参考_字节集 = GP图像. 保存到字节集 (, )返回文件大小 = 文件_取实际大小 (参_文件 )GP图像. 销毁 ()|
Png_颜色替换_批量 | | | |
参_目录 | 文本型 | | | | 参_颜色值 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_文件数组 | 文本型 | | 0 | 局_颜色值 | 文本型 | | | 局_计次 | 整数型 | | | 局_任务数量 | 整数型 | | | 局_线程数量 | 整数型 | | | 局_目录 | 文本型 | | | 文件_枚举 (参_目录, “*.png”, 局_文件数组, 真, , )局_颜色值 = 参_颜色值 局_计次 = 1 局_任务数量 = 取数组成员数 (局_文件数组 )局_线程数量 = 50 重定义数组 (集_文本数组_png_颜色叠加, 假, 局_任务数量 )如果 (集_线程池Ex_颜色替换. 创建 (局_线程数量, 局_线程数量, , 真, )) 判断循环首 (局_计次 ≤ 局_任务数量 )如果真 (集_线程池Ex_颜色替换. 取_空闲线程数 () > 0 )集_文本数组_png_颜色叠加 [局_计次 ] = 局_目录 + 局_文件数组 [局_计次 ] + “&&” + 参_颜色值 如果真 (集_线程池Ex_颜色替换. 投递任务 (&线程池_Png_颜色替换, 局_计次, )) 如果真 (集_线程池Ex_颜色替换. 等待任务动态 (, )) 局_计次 = 局_计次 + 1 _延迟 (1)判断循环尾 ()判断循环首 (集_线程池Ex_颜色替换. 取_是否空闲 () = 假)如果真 (集_线程池Ex_颜色替换. 取_状态 () = #线程池_未启动 )返回 ()_延迟 (10)判断循环尾 ()如果真 (集_线程池Ex_颜色替换. 取_状态 () = #线程池_正在工作 )集_线程池Ex_颜色替换. 销毁 (, , )判断循环首 (集_线程池Ex_颜色替换. 取_状态 () ≠ #线程池_未启动 )_延迟 (10 )判断循环尾 ()信息框 (“创建线程失败”, 0, , )变量名 | 类 型 | 静态 | 数组 | 备 注 | i | 整数型 | | | 局_文件 | 文本型 | | | 局_颜色值 | 文本型 | | | 局_文本数组 | 文本型 | | 0 | 如果真 (集_线程池Ex_颜色替换. 事件_暂停 ()) 局_文本数组 = 分割文本 (集_文本数组_png_颜色叠加 [局_计次 ], “&&”, )局_文件 = 局_文本数组 [1 ]局_颜色值 = 局_文本数组 [2 ]Png_颜色替换 (局_文件, , 局_颜色值 )集_线程池Ex_颜色替换. 触发任务动态 ()返回 ()Gdiplus关闭 ()
|
-
-
测试.e
1.4 MB, 下载次数: 16, 下载积分: 精币 -2 枚
|