递归火山软件开发平台

标题: 【线程相关】线程与线程池回调函数任意参数 [打印本页]

作者: 龙纹    时间: 2021-6-8 19:49
标题: 【线程相关】线程与线程池回调函数任意参数
本帖最后由 龙纹 于 2021-6-11 05:29 编辑

一个支持线程与线程池回调函数任意参数的例子, (6月11日更新) 这个帖子中的源码已经支持获取异步返回值.
线程池目前是拷贝传参, 而线程_启动bf 是传引用, 也就是支持方法内修改实例. 具体看图或下载代码运行

(, 下载次数: 71)


(, 下载次数: 54)




作者: 呵呵仙8    时间: 2021-6-8 22:10
单线程的线程_启动bf是不是创建成功就关闭线程句柄的?都不见线程数,也没返回值!!不是应该返回线程ID和线程句柄让用户操作吗?不过.线程池类bf很强大!!非常感谢!!
正在为写64位线程池痛苦中,用C++语言写GetQueuedCompletionStatus和PostQueuedCompletionStatus两函数只有4字节指针传递,没有8字节指针传递!!请问有何解决办法,谢谢!!
作者: 呵呵仙8    时间: 2021-6-8 22:12
(, 下载次数: 60)

作者: 龙纹    时间: 2021-6-9 13:42
呵呵仙8 发表于 2021-6-8 22:10
单线程的线程_启动bf是不是创建成功就关闭线程句柄的?都不见线程数,也没返回值!!不是应该返回线程ID和线程 ...

线程_启动bf只是单纯的执行任务, 线程和线程池我应该会增加异步获取方法返回值这个功能, 所以没有返回句柄, 至于你说传指针的这个问题我也不太清楚你具体想做到什么, 加群聊吧? 748413192
作者: 伟业    时间: 2021-6-9 14:28
都是牛人
作者: 呵呵仙8    时间: 2021-6-9 16:17
龙纹 发表于 2021-6-9 13:42
线程_启动bf只是单纯的执行任务, 线程和线程池我应该会增加异步获取方法返回值这个功能, 所以没有返回句 ...

这是传统API的写法,之前,用系统API写过一次,只能用于X86程序,64位程序不支持,现在换C++语法写,还是不支持64位程序.那俩个函数是给线程池投递任务用的!!
(, 下载次数: 6)






作者: 龙纹    时间: 2021-6-9 20:21
呵呵仙8 发表于 2021-6-9 16:17
这是传统API的写法,之前,用系统API写过一次,只能用于X86程序,64位程序不支持,现在换C++语法写,还是不 ...

我下载看了, 帮不了什么忙, IOCP差不多忘干净了, 唯一能想到的就是分两次传指针然后拼接起来, 但想想就...
想兼容的话可以用C++标准库写, 细节处理好跨平台都没问题...
作者: 呵呵仙8    时间: 2021-6-10 14:19
龙纹 发表于 2021-6-9 20:21
我下载看了, 帮不了什么忙, IOCP差不多忘干净了, 唯一能想到的就是分两次传指针然后拼接起来, 但想想就.. ...

你是说,现在C++的命令写出的程序,都可以跨平台运行?这么牛吗?
作者: 龙纹    时间: 2021-6-10 15:56
呵呵仙8 发表于 2021-6-10 14:19
你是说,现在C++的命令写出的程序,都可以跨平台运行?这么牛吗?

C++标准库中大部分的代码都可以跨平台而且保持行为一致, 但不是全部, 看编译器实现, 还有些东西依赖操作系统.
作者: 呵呵仙8    时间: 2021-6-10 15:59
龙纹 发表于 2021-6-10 15:56
C++标准库中大部分的代码都可以跨平台而且保持行为一致, 但不是全部, 看编译器实现, 还有些东西依赖操作 ...

谢谢      
作者: 呵呵仙8    时间: 2021-6-13 00:40
你好,线程池还不是很完善,启用( )到关闭( ) 好像是一次性的!再次启用新建线程池数就会报错退出!即关了一次就没第2次了!多次创建线程数。发现可以增加线程数,但减不了线程数!能改完善它吗?买给官方也不错啊!最少现在官方还没有!!
作者: 龙纹    时间: 2021-6-13 16:02
本帖最后由 龙纹 于 2021-6-13 16:04 编辑
呵呵仙8 发表于 2021-6-13 00:40
你好,线程池还不是很完善,启用( )到关闭( ) 好像是一次性的!再次启用新建线程池数就会报错退出!即关了 ...

是的, 它是一次性的, 如果确实需要关闭之后再次使用, 目前只能新建一个. 减少线程数我应该会增加进去.




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