递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 9372|回复: 11
打印 上一主题 下一主题

[视窗] 【线程相关】线程与线程池回调函数任意参数

[复制链接]

6

主题

64

帖子

2599

积分

金牌会员

Rank: 6Rank: 6

积分
2599
跳转到指定楼层
楼主
发表于 2021-6-8 19:49:43 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 龙纹 于 2021-6-11 05:29 编辑

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




线程池_多参.zip (124.55 KB, 下载次数: 54)



评分

参与人数 1金钱 +3 收起 理由
呵呵仙8 + 3 很给力!

查看全部评分

火山PC交流群: 748413192
回复

使用道具 举报

50

主题

567

帖子

2477

积分

金牌会员

Rank: 6Rank: 6

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

使用道具 举报

50

主题

567

帖子

2477

积分

金牌会员

Rank: 6Rank: 6

积分
2477
板凳
发表于 2021-6-8 22:12:14 | 只看该作者

回复

使用道具 举报

6

主题

64

帖子

2599

积分

金牌会员

Rank: 6Rank: 6

积分
2599
地板
 楼主| 发表于 2021-6-9 13:42:20 | 只看该作者
呵呵仙8 发表于 2021-6-8 22:10
单线程的线程_启动bf是不是创建成功就关闭线程句柄的?都不见线程数,也没返回值!!不是应该返回线程ID和线程 ...

线程_启动bf只是单纯的执行任务, 线程和线程池我应该会增加异步获取方法返回值这个功能, 所以没有返回句柄, 至于你说传指针的这个问题我也不太清楚你具体想做到什么, 加群聊吧? 748413192
火山PC交流群: 748413192
回复

使用道具 举报

17

主题

792

帖子

2744

积分

金牌会员

Rank: 6Rank: 6

积分
2744
5#
发表于 2021-6-9 14:28:37 | 只看该作者
都是牛人
回复

使用道具 举报

50

主题

567

帖子

2477

积分

金牌会员

Rank: 6Rank: 6

积分
2477
6#
发表于 2021-6-9 16:17:40 | 只看该作者
龙纹 发表于 2021-6-9 13:42
线程_启动bf只是单纯的执行任务, 线程和线程池我应该会增加异步获取方法返回值这个功能, 所以没有返回句 ...

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





回复

使用道具 举报

6

主题

64

帖子

2599

积分

金牌会员

Rank: 6Rank: 6

积分
2599
7#
 楼主| 发表于 2021-6-9 20:21:50 | 只看该作者
呵呵仙8 发表于 2021-6-9 16:17
这是传统API的写法,之前,用系统API写过一次,只能用于X86程序,64位程序不支持,现在换C++语法写,还是不 ...

我下载看了, 帮不了什么忙, IOCP差不多忘干净了, 唯一能想到的就是分两次传指针然后拼接起来, 但想想就...
想兼容的话可以用C++标准库写, 细节处理好跨平台都没问题...
火山PC交流群: 748413192
回复

使用道具 举报

50

主题

567

帖子

2477

积分

金牌会员

Rank: 6Rank: 6

积分
2477
8#
发表于 2021-6-10 14:19:16 | 只看该作者
龙纹 发表于 2021-6-9 20:21
我下载看了, 帮不了什么忙, IOCP差不多忘干净了, 唯一能想到的就是分两次传指针然后拼接起来, 但想想就.. ...

你是说,现在C++的命令写出的程序,都可以跨平台运行?这么牛吗?
回复

使用道具 举报

6

主题

64

帖子

2599

积分

金牌会员

Rank: 6Rank: 6

积分
2599
9#
 楼主| 发表于 2021-6-10 15:56:26 | 只看该作者
呵呵仙8 发表于 2021-6-10 14:19
你是说,现在C++的命令写出的程序,都可以跨平台运行?这么牛吗?

C++标准库中大部分的代码都可以跨平台而且保持行为一致, 但不是全部, 看编译器实现, 还有些东西依赖操作系统.
火山PC交流群: 748413192
回复

使用道具 举报

50

主题

567

帖子

2477

积分

金牌会员

Rank: 6Rank: 6

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

谢谢      
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-25 15:15 , Processed in 0.098514 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表