将多个参数传递给线程函数

2023-12-24

我有一个名为 workForThread 的函数,它接受两个参数,并返回 void。我想使用类似的方法来线程化这个函数:

thread(workForThread,a,b);

Where a and b属于适当的类型。上面的代码无法编译,给出“调用参数太多”错误(“错误 C2197: 'void (__cdecl *)(char *)' : 调用参数太多”)

我该如何解决这个问题?

Note:我看过these https://stackoverflow.com/questions/1352749/multiple-arguments-to-function-called-by-pthread-create two https://stackoverflow.com/questions/3674104/how-to-pass-multiple-parameters-to-a-thread-function问题,但那里有效的决议似乎对我不起作用。此外,我有一种感觉,有一种方法可以将其内置到 c++11 中,这就是我正在寻找的。


在 C++11 中,执行此操作的方法或多或少与您尝试过的方法相同:

std::thread myThread(workForThread,a,b);

假设 workForThread 是一个采用这两个参数的(非成员)函数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

将多个参数传递给线程函数 的相关文章

随机推荐

  • 如何从 Java 1.4.2 更改文件权限?

    我正在寻找一个代码片段 我必须使用它来更改unix上的文件权限 我的项目在 java 1 4 2 上运行 只需一个示例代码示例或需要使用的方法即可 问候 森尼 你并不是唯一的一个 如何在Java中更改文件的权限和最后修改时间 https s
  • 通过平分(搜索)修订历史记录和不可测试的提交(修订)来查找错误

    大多数现代版本控制工具都有一个命令 可以通过对历史记录进行二分搜索 平分 来查找引入错误的更改 此类命令可能是内置的 也可能作为扩展或插件提供 例子包括git 二等分 http www kernel org pub software scm
  • sqlite3_exec是否存在内存泄漏?

    我正在使用 SQLite 来存储我的数据 我正在编写包装类 我想知道 如果 res SQLITE OK 和 errorMsg 将显示到屏幕上 是否会发生内存泄漏 那么我需要做 free errorMsg 吗 在 if 语句中 谢谢 int
  • 如何告诉 lcov 在哪里可以找到我的 .cpp 和 .h 文件?

    我的源代码和构建树如下所示 请参阅Makefile 将不同目录中的源文件中的目标文件放入单个单独的目录中 https stackoverflow com questions 4102469 makefile to put object fi
  • 在AngularJS中添加/删除多个li的类

    我的清单如下 ul li one li li two li li three li ul 现在 当一个特定的li被点击 我想要active要添加到相同的类并删除active与其他班级相比li元素 另外 当同样li再次点击我想删除active
  • 服务器崩溃后 MongoDB 将无法启动

    我的 Ubuntu 计算机崩溃了 当我重新启动它时 MongoDB 无法工作 我尝试了以下命令 并得到以下输出 mongo Error couldn t connect to server 127 0 0 1 27017 src mongo
  • 识别联合多边形的原始边

    我有很多多边形 在将所有这些多边形合并后 我得到一个新的大多边形 联合算法是一个黑匣子 使用第三方库过程 我无法控制 我也不希望从进度中提取任何信息 有没有有效的方法让我知道 对于那个巨大的联合多边形的每条边 其中哪一条属于较小多边形的哪条
  • 为什么我得到的是 AggregationCursor 结果而不是平均值?

    我正在查询 MongoDB 数据库 但不明白为什么当我期望返回单个数字时却得到聚合器游标 也许我需要从光标对象中获取一些东西 只是想不明白是什么 module exports CalculateAvg async collection gt
  • Ruby require 'tk' 产生 LoadError: no such file to load -- tk

    我无法让红宝石需要 tk 成功地 我正在使用 rvm ruby 2 0 0 ActiveTcl 8 6 和 Ubuntu 12 04 LTS 我跑了wish与 ActiveTcl 一起提供 它似乎可以工作 我查看了 RVM 网站http r
  • Xcache var_size 错误

    我正在尝试将 xcache 与 zend 框架结合使用来缓存 Zend Db Table Abstract 中的元数据 以便每个表仅调用一次描述查询 在我的引导程序中实现 xcache 并运行该应用程序时 出现以下错误 Warning xc
  • 没有发送过期标头,缓存内容,浏览器发出条件 GET 请求需要多长时间?

    假设浏览器默认设置 并且发送的内容没有过期标头 用户访问网站 浏览器缓存图像等 用户没有关闭浏览器或刷新页面 用户继续正常浏览网站 假设浏览器不会出于任何原因转储缓存 当用户浏览时 浏览器会缓存图像等 但尚不清楚何时会发出条件 GET 请求
  • Git:取消交互式变基

    我喜欢git rebase i HEAD 5压缩我的承诺 有时我认为我需要返回 5 次提交 但后来意识到我需要 7 次 然而 git 已经调出了 rebase 编辑器 git rebase merge git rebase todo在维姆中
  • Play框架中的异常处理

    我正在使用 play 框架 2 3 x 来构建一个宁静的 API 今天 我在 API 控制器中的所有 api 函数周围有一个 try catch 块 以便能够捕获异常并返回通用的 错误 json 对象 Example def someApi
  • 通过perl脚本在linux中按密码提示登录

    我想通过 Perl 脚本传递密码 我基本上是在编写一个脚本来在 Linux 终端上执行命令 在执行特定命令时 我收到提示 Password I need to enter password here through my script 但是
  • 确定最后单击的项目

    我需要检索导致焦点移出 模糊 事件的 DOM 元素在模糊事件中 以下代码将为我提供失去焦点的元素的 ID 而不是导致该元素失去焦点的元素 这是我需要的第二个元素 live blur function e var id this attr i
  • 在Python中使用循环来命名变量[重复]

    这个问题在这里已经有答案了 如何使用循环来命名变量 例如 如果我想要一个变量double 1 2 double 2 4一直到double 12 24 我该怎么写呢 我感觉它会是这样的 for x in range 1 13 double x
  • jQuery 搜索过滤器 - 在输入框中搜索

    我正在使用 jQuery 搜索过滤器 它运行良好 不过 我还需要在输入框中进行搜索和过滤 输入框都是文本类型 我需要像其他表列中的文本一样使用该值 我创造了一个小提琴 http jsfiddle net ktcle Jf6q5 http j
  • JPA @ManyToOne 在删除最后一个子项时自动删除父项

    我有一个由 ManyToOne 从子级到父级的单向映射 如下所示 ManyToOne JoinColumn name PARENT ID private ParentEntity parent 当最后一个子实体被删除而没有从 ParentE
  • 存储过程未在另一个存储过程中执行

    我发现执行 SP1 时 SP2 不会从 SP1 内执行 SP1的结构如下 ALTER PROCEDURE SP1 AS BEGIN Declare c1 cursor open c1 fetch next from c1 while fet
  • 将多个参数传递给线程函数

    我有一个名为 workForThread 的函数 它接受两个参数 并返回 void 我想使用类似的方法来线程化这个函数 thread workForThread a b Where a and b属于适当的类型 上面的代码无法编译 给出 调