我有一个名为 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(使用前将#替换为@)