quick 发表于 2024-9-1 11:40:07

关于piv线程池 Xelloss大佬请进

本帖最后由 quick 于 2024-9-1 11:51 编辑

新手从易语言转过来的看官方的线程池看不懂有人推荐piv的线程池

下面线程池写法 不知道是否正确
https://s1.locimg.com/2024/09/01/55536ece018c6.png


关于线程池有几点疑问:
1.火山的超级列表框是线程安全吗
2.线程池投递任务 分批投递和一次性投递 哪一个比较好
请大神帮忙看看 指点一下

附上源码:cn.s12k.cn/down.php/9463bcbb1b37ccc9600aa4bafa2cbffd.zip


Xelloss0618 发表于 2024-9-1 22:12:41

1. 窗口组件都不是线程安全的,不建议在线程中使用,即使有加锁。
可以用高级主线程处理器,在线程中投递内容到主线程操作界面。
2. 你才100个任务,分批和一次性投递没多大区别,如果是一次性上万,那还可能占用多点内存。


quick 发表于 2024-9-1 23:42:28

本帖最后由 quick 于 2024-9-1 23:56 编辑

Xelloss0618 发表于 2024-9-1 22:12
1. 窗口组件都不是线程安全的,不建议在线程中使用,即使有加锁。
可以用高级主线程处理器,在线程中投递内 ...
感谢大佬热心解答如果点击了停止但投递的线程任务还在运行(耗时任务)怎么等待work线程运行完毕再做出提示或解除按钮的禁用 (停止-等待-销毁)

Xelloss0618 发表于 2024-9-2 09:03:10

quick 发表于 2024-9-1 23:42
感谢大佬热心解答如果点击了停止但投递的线程任务还在运行(耗时任务)怎么等待work线程运行完毕再 ...

高级主线程处理器_接收到通知 里的判断可以改成
如果 (线程池对象.执行任务数 == 1 && 线程池对象.队列任务数 == 0)

quick 发表于 2024-9-2 11:46:25

Xelloss0618 发表于 2024-9-2 09:03
高级主线程处理器_接收到通知 里的判断可以改成
如果 (线程池对象.执行任务数 == 1 && 线程池对象.队列任 ...

非常感谢:loveliness:
页: [1]
查看完整版本: 关于piv线程池 Xelloss大佬请进