CPS*_*CPS 21 c++ multithreading std c++11 stdthread
我试图从我的类中生成一个线程,并且该线程在我的类中执行一个特定的方法.代码如下所示:
class ThreadClass{
int myThread(int arg){
// do something
}
void createThread(){
thread t = thread(myThread,10);
}
} ;
Run Code Online (Sandbox Code Playgroud)
编译时的这段代码会引发错误说法
std::thread::thread(_Callable&&, _Args&& ...) [with _Callable = int (ThreadClass::*)(int), _Args = {int}]
no known conversion for argument 1 from ‘<unresolved overloaded function type>’ to ‘int (ThreadClass::*&&)(int)’
Run Code Online (Sandbox Code Playgroud)
我不确定这里的实际错误是什么.有人可以帮我弄这个吗?
谢谢.
imr*_*eal 27
问题是没有对象就不能调用成员函数.提供一个指针,this以便使用当前对象:
thread t(&ThreadClass::myThread, this, 10);
Run Code Online (Sandbox Code Playgroud)
您可以使用任何ThreadClass对象的实例,但在您的情况下,似乎this是正确的做法.
注意:请记住,您需要对创建的线程的引用,以便join()稍后可以执行.
| 归档时间: |
|
| 查看次数: |
11093 次 |
| 最近记录: |