std::thread 运行 对象中的代码

std::thread Run code in object

如何启动一个线程来执行另一个 object/class 的代码?

这是我尝试过的方法,但没有用

#import <thread>
#import "Foo.h"

int main() {
    Foo bar;

    std::thread asyncStuff(bar.someMethod);
}

为什么这不起作用,我该如何解决?

解决方法: 改为调用 std::thread asyncStuff(&Foo.someMethod, &bar);

你想要:

std::thread asyncStuff(&Foo::someMethod, &bar);

(不要忘记在销毁 std::thread 对象之前加入或分离线程。)