递归火山软件开发平台

标题: 火山PC线程池类 (2021-01-03) [打印本页]

作者: Xelloss0618    时间: 2022-1-1 22:49
标题: 火山PC线程池类 (2021-01-03)
本帖最后由 Xelloss0618 于 2022-1-3 20:23 编辑
2021-01-03 更新:
1. 修复在暂停状态下销毁线程池,会导致线程句柄没有被实际销毁的问题。


完全使用嵌入式语句和火山语法实现,除了视窗基本类,不依赖其他类库和 DLL。
线程的回调函数在接收事件中执行,不需要使用静态方法,传参和操作 UI 更简单。

支持两种投递方式,第一种投递基本数值参数;
第二种可以投递对象类,由于是复制传参,可以直接投递局部的对象变量,而不需要考虑局部变量被销毁。

经高压测试,高稳定,无内存和句柄泄漏。

(, 下载次数: 176)

(, 下载次数: 60)





作者: urenai    时间: 2022-1-1 23:08

作者: 龙纹    时间: 2022-1-1 23:48
支持一下
作者: 伟业    时间: 2022-1-2 02:36
学习....
作者: CPUCN    时间: 2022-1-2 08:37
正研究线程池呢,
用官方的HP线程池,发现有局限性,不理想
正在一筹莫展之时,发现了你的帖子,正好解决了我的问题
作者: 创世魂    时间: 2022-1-2 09:18
CPUCN 发表于 2022-1-2 08:37
正研究线程池呢,
用官方的HP线程池,发现有局限性,不理想
正在一筹莫展之时,发现了你的帖子,正好解决了我的 ...

看看看鹅总发的线程池的帖子啊。封装的很好使。
作者: CPUCN    时间: 2022-1-2 10:43
创世魂 发表于 2022-1-2 09:18
看看看鹅总发的线程池的帖子啊。封装的很好使。

鹅总的也非常不错.
作者: Xelloss0618    时间: 2022-1-2 12:24
创世魂 发表于 2022-1-2 09:18
看看看鹅总发的线程池的帖子啊。封装的很好使。

鹅总的要依赖HP,这是最大的局限性,但投递对象的思路很不错,所以这就抄过来了
作者: CPUCN    时间: 2022-1-2 16:01
其实正是用HP的时候才用了线程池

你们两个的例子都非常好

作者: li327065266kun    时间: 2022-1-2 22:10
创建线程池->投递任务->暂停线程池->温柔销毁的话线程还是没销毁掉.....
作者: Xelloss0618    时间: 2022-1-2 22:51
li327065266kun 发表于 2022-1-2 22:10
创建线程池->投递任务->暂停线程池->温柔销毁的话线程还是没销毁掉.....

例子里的温柔销毁是设置了 3 秒的等待时间,也就是等待 3 秒后就变成强制销毁,
所以你多等一会就看到它销毁掉了。
作者: Xelloss0618    时间: 2022-1-2 22:52
li327065266kun 发表于 2022-1-2 22:10
创建线程池->投递任务->暂停线程池->温柔销毁的话线程还是没销毁掉.....

例子里的温柔销毁是等待3秒,你再等一下就行了
作者: li327065266kun    时间: 2022-1-3 19:46
Xelloss0618 发表于 2022-1-2 22:52
例子里的温柔销毁是等待3秒,你再等一下就行了

等的没用的,看着像销毁了,其实没销毁,你看任务管理器里面的线程数就知道了......
作者: Xelloss0618    时间: 2022-1-3 20:23
li327065266kun 发表于 2022-1-3 19:46
等的没用的,看着像销毁了,其实没销毁,你看任务管理器里面的线程数就知道了...... ...

忘记用这个检查了…感谢反馈,已修复
作者: 伟业    时间: 2022-1-3 22:43
学习....
作者: li327065266kun    时间: 2022-1-5 21:25
Xelloss0618 发表于 2022-1-3 20:23
忘记用这个检查了…感谢反馈,已修复

:噜阿噜 新版啥时候丢出来啊??
作者: li327065266kun    时间: 2022-1-5 21:35
为啥我来回销毁那么两三次就会蹦???
作者: Xelloss0618    时间: 2022-1-5 23:22
li327065266kun 发表于 2022-1-5 21:35
为啥我来回销毁那么两三次就会蹦???

不知道是调试运行时事件处理不过来,还是用了延时的缘故,很容易就崩到火山的 PreTranslateMessage 处
编译发布版再测试就没问题了
作者: 飞翔网络工作室    时间: 2022-1-8 09:48
留下印记!
作者: Fang0x378    时间: 2022-1-9 09:49
记号。:噜阿噜:噜阿噜
作者: 米粒    时间: 2022-2-22 10:14
感谢分享!
作者: 唐兀    时间: 2022-2-24 01:22
给个QQ,请教一下,你这个怎么用
作者: Xelloss0618    时间: 2022-2-24 14:39
唐兀 发表于 2022-2-24 01:22
给个QQ,请教一下,你这个怎么用

里面有例子啊,我备注也写得很多了
作者: 李小龙2    时间: 2022-6-26 23:09
感谢 试试
作者: 呵呵仙8    时间: 2022-6-27 16:19
li327065266kun 发表于 2022-1-5 21:35
为啥我来回销毁那么两三次就会蹦???

http://bbs.voldp.com/forum.php?mod=viewthread&tid=9919
看下这个会蹦不
作者: qaz2428119    时间: 2022-6-28 19:22
线程池不建议强制销毁,太容易导致内存泄漏,
作者: Huoyan    时间: 2022-8-4 18:41

作者: hardy    时间: 2022-12-23 00:20
大佬 请教一下对象无法解析的原因

无法解析的对象数据,其输出类名为: "rg_n8914::rg_n8956", 地址为: 0x16A35C12340
被调试程序已经退出,退出码为0x0.
作者: Xelloss0618    时间: 2022-12-23 12:35
hardy 发表于 2022-12-23 00:20
大佬 请教一下对象无法解析的原因

无法解析的对象数据,其输出类名为: "rg_n8914::rg_n8956", 地址为: 0x16 ...

如果要调试输出自定义的对象,需要自己先写好输出信息
你参考其他源码,写一个可覆盖的虚拟方法「取展示内容」




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4