将成员函数传递给 std::thread
Passing member functions to std::thread
可能的重复项:
使用成员函数启动线程
我最近一直在玩 c++11 中的新 std::thread 库,我遇到了一个问题。当我尝试将类函数传递到新线程时,它给了我一个错误(我现在没有确切的错误文本,因为我不在家)我有这样的一堂课
class A
{
void FunctA();
void FunctB();
void run()
{
std::thread t(FunctA);
std::thread r(FunctB);
}
}
我做错了什么?
class A
{
void FunctA();
void FunctB();
void run()
{
std::thread t(&A::FunctA, this);
std::thread r(&A::FunctB, this);
}
};
指向成员函数的指针不同于指向函数的指针,调用它们的语法也不同,并且需要类的实例。您可以将指向实例的指针作为构造函数的第二个参数传递std::thread
。
我认为
,问题是您无法以类似于函数的方式获取指向成员函数的指针。在这里,您将找到有关此内容的更多信息。
此外,如果您提供了编译器错误文本,则回答起来会容易得多。
相关文章:
- 在std::thread中,joinable()然后join()线程安全吗
- 分离一个静态常量 std::thread?
- 当指向对象的指针作为参数传递给 std::thread 时,内存可见性
- 如何从 std::thread 返回值
- 将 std::thread by 值推送到列表中
- 转发变量参数列表以模拟 std::thread
- 对 'std::thread::_M_start_thread CMake 的未定义引用进行基准测试
- std::thread 增加 DLL 引用计数,从而防止卸载 DLL
- 如何防止 std::thread 在 QT 中冻结 GUI?
- 对带有唯一指针的 std::thread 使用类成员函数时出现编译错误
- 为什么参数在构造 std::thread 时移动两次
- std::thread::_Invoker 使用线程编程时出错
- 在线程 A 中创建一个 std::thread 对象,在线程 B 中连接
- 为什么编译器抱怨 std::thread 参数在转换为右值后必须是可调用的?
- ZeroMQ 在使用 std::thread 创建工作线程时崩溃
- 在没有复制构造函数的对象的成员函数中启动 std::thread
- CLang:在 std::thread 中运行函数会导致结构创建BAD_ACCESS
- 调用以CWinThread为基的类运算符()的std::thread失败
- 如何通过std::thread生成多个线程
- std::future::get()或std::future::wait()是std::thread::join()的替