启动线程_多参数带回调
<火山程序 类型 = "通常" 版本 = 1 />类 自用线程 <公开 折叠>
{
方法 启动线程_多参数 <公开 @嵌入式方法 = "" @视窗.外部头文件 = "<thread>">
参数 编号 <类型 = 整数 @默认值 = 0>
参数 内容 <类型 = 文本型 @默认值 = "">
参数 数值 <类型 = 小数 @默认值 = 0>
{
@ auto pThis = &@sn<this>;
@ int id = @<编号>;
@ CVolString content = @<内容>;
@ double num = @<数值>;
@ std::thread(() mutable {
@ pThis->@n<线程回调_多参数>(id, content, num);
@ }).detach();
}
方法 线程回调_多参数 <公开 定义事件 类型 = 整数>
参数 编号 <类型 = 整数>
参数 内容 <类型 = 文本型>
参数 数值 <类型 = 小数>
{
}
}
使用例子
<火山程序 类型 = "通常" 版本 = 1 />
变量 停止标志 <类型 = 逻辑型 值 = 假>
方法 按钮_被单击 <接收事件 类型 = 整数 注释 = "当按钮被单击后发送此事件" 折叠>
参数 来源对象 <类型 = 按钮 注释 = "提供事件产生的具体来源对象">
参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
{
如果 (来源对象 == 按钮1)
{
编辑框1.内容 = ""
停止标志 = 假
// 启动线程
线程.启动线程_多参数 (123, "测试消息", 3.14)
编辑框1.内容 = 编辑框1.内容 + "任务在后台执行中...\r\n"
}
否则 (来源对象 == 按钮投递)
{
停止标志 = 真
编辑框1.内容 = 编辑框1.内容 + "已发送停止信号\r\n"
}
返回 (0)
}
方法 自用线程_线程回调_多参数 <接收事件 类型 = 整数 折叠>
参数 来源对象 <类型 = 自用线程 注释 = "提供事件产生的具体来源对象">
参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
参数 编号 <类型 = 整数>
参数 内容 <类型 = 文本型>
参数 数值 <类型 = 小数>
{
如果 (来源对象 == 线程)
{
变量 i <类型 = 整数>
调试输出 ("【线程开始】编号: " + 到文本 (编号) + " 内容: " + 内容)
计次循环 (10)
{
如果 (停止标志)
{
调试输出 ("【线程中断】收到停止信号")
跳出循环
}
i = 取循环索引 ()
调试输出 ("执行中... " + 到文本 (i) + "/10")
@ Sleep(500);
}
调试输出 ("【线程结束】")
}
返回 (0)
}
666超牛
多线程加线程池,这样多参的话,更实用哦 这个是模块吗? 4731803 发表于 2025-12-25 16:06
这个是模块吗?
自己复制到火山使用 huanhai 发表于 2025-12-25 16:25
自己复制到火山使用
哦 那行谢了
页:
[1]