int*_*nt3 1 c++ multithreading
定义的原因:
void aClass::start(){
void *ptr = this->startService;
thread serviceth(ptr,this);
}
Run Code Online (Sandbox Code Playgroud)
ISO是否禁止?即使我:
void aClass::start(){
thread serviceth(startService,this);
}
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:"没有匹配的呼叫功能".
你需要提供std::thread一个类似的函数指针
void aClass::start(){
thread serviceth(&aClass::startService, this);
}
Run Code Online (Sandbox Code Playgroud)
为了创建一个线程.但是我们遇到了另一个问题.在创建线程之后,函数结束并且线程被销毁.由于线程处于可连接状态(join()或detach()从未被调用),线程的析构函数将抛出异常.
您可以创建serviceth一个成员,aClass以便线程可以在类存在时运行.