递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[视窗] 【源码】[251021更新]PC无需定义方法多线程启动线程任意参数

  [复制链接]

20

主题

240

帖子

2781

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2781
跳转到指定楼层
楼主
发表于 2024-7-21 22:14:13 | 只看该作者 |只看大图 回帖奖励 |正序浏览 |阅读模式
本帖最后由 小小小小鸟 于 2025-10-21 10:26 编辑

20251021更新:
返璞归真,优化写法,用最简单的方式来实现捕获,无需传参了,直接在线程内部使用局部变量(拷贝)、类成员变量(引用)。有问题请及时留言反馈。



游客,如果您要查看本帖隐藏内容请回复


20240724更新:
加入对任意类型参数的支持,终于不被传参文本折磨了~
加入启动线程失败的判断(虽然几乎不太可能出现,但还是要严谨)
加入方法:多线程.结束当前线程(其实就是return,但是直接返回可能会和火山语法冲突)。



////////下方为历史
每次使用多线程时,启动线程都要定义一个新的方法,偶然看到了火山go例程里关于函数体的应用,就突发灵感试试在PC中能否实现,起初想利用WINAPI CreateThread来实现,发现无法访问类成员,就换成c++自己的thread头文件,结合匿名函数捕获[this],初步实现了功能,抛砖引玉,有任何想法的都可以交流。










pic1.png (469.6 KB, 下载次数: 1916)

pic1.png
回复

使用道具 举报

3

主题

17

帖子

98

积分

注册会员

Rank: 2

积分
98
160#
发表于 1 小时前 | 只看该作者
更新]PC无需定义方法多线程启动线程任意参数
回复

使用道具 举报

1

主题

12

帖子

220

积分

中级会员

Rank: 3Rank: 3

积分
220
159#
发表于 昨天 09:35 | 只看该作者
学习多线程中~
回复

使用道具 举报

0

主题

18

帖子

250

积分

中级会员

Rank: 3Rank: 3

积分
250
158#
发表于 5 天前 | 只看该作者
PC无需定义方法多线程启动线程任意参数
回复

使用道具 举报

0

主题

37

帖子

169

积分

注册会员

Rank: 2

积分
169
157#
发表于 2025-11-14 00:19:53 来自手机 | 只看该作者
感谢大佬
回复

使用道具 举报

1

主题

3

帖子

11

积分

新手上路

Rank: 1

积分
11
156#
发表于 2025-11-13 23:12:38 | 只看该作者
义方法多线程启动线程任
回复

使用道具 举报

15

主题

569

帖子

1697

积分

金牌会员

Rank: 6Rank: 6

积分
1697
155#
发表于 2025-10-25 12:08:06 来自手机 | 只看该作者
好高级,看不懂
回复

使用道具 举报

2

主题

68

帖子

2050

积分

金牌会员

Rank: 6Rank: 6

积分
2050
154#
发表于 2025-10-25 08:06:03 | 只看该作者

感谢大佬贡献
回复

使用道具 举报

20

主题

240

帖子

2781

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
2781
153#
 楼主| 发表于 2025-10-25 07:20:39 来自手机 | 只看该作者
filippo009 发表于 2025-10-25 05:57
要访问多个网页,不开线程好像会卡,我用e 写的 多线程就不卡..

火山也可以实现,多研究研究,看看别人代码,加油!
回复

使用道具 举报

4

主题

37

帖子

196

积分

注册会员

Rank: 2

积分
196
152#
发表于 2025-10-25 05:57:34 | 只看该作者
小小小小鸟 发表于 2025-10-24 09:24
主线程等待呗,加个标记判断呗,或者高级点用事件通知,不过你既然主线程要等待这个结果,那就可能阻塞主 ...

要访问多个网页,不开线程好像会卡,我用e 写的 多线程就不卡..
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-21 05:03 , Processed in 0.101744 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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