C++ pthread_创建错误:
我写这段代码是为了我自己的目的。它将创建一个线程,该线程运行名为event_handler()的例程。例程event_handler将类对象QApplication的一个实例作为参数,并调用其exec()方法C++ pthread_创建错误:,c++,linux,qt,qtembedded,C++,Linux,Qt,Qtembedded,我写这段代码是为了我自己的目的。它将创建一个线程,该线程运行名为event_handler()的例程。例程event_handler将类对象QApplication的一个实例作为参数,并调用其exec()方法 我的代码有什么问题。(请记住,我是这方面的新手,这可能是一个非常愚蠢的错误:-)线程函数必须使用void指针作为参数,而不是对象的引用。您可以稍后将其类型转换为正确的指针类型: void event_handler(void* pointer) { QApplication* ap
我的代码有什么问题。(请记住,我是这方面的新手,这可能是一个非常愚蠢的错误:-)线程函数必须使用
void
指针作为参数,而不是对象的引用。您可以稍后将其类型转换为正确的指针类型:
void event_handler(void* pointer)
{
QApplication* app = reinterpret_cast<QApplication*>(pointer);
app->exec();
}
线程函数必须将
void
指针作为其参数,而不是对象的引用。您可以稍后将其类型转换为正确的指针类型:
void event_handler(void* pointer)
{
QApplication* app = reinterpret_cast<QApplication*>(pointer);
app->exec();
}
Qt有自己的线程函数(查找
QThread
)。您最好将void*
指针传递给event\u处理程序
,并在其中执行指针强制转换。Qt有自己的线程函数(查找QThread
)。您最好将void*
指针传递给event\u处理程序
,并在其中执行指针转换。
void event_handler(void* pointer)
{
QApplication* app = reinterpret_cast<QApplication*>(pointer);
app->exec();
}
int main()
{
QApplication app;
std::thread app_thread([&app]() { app.exec(); });
// Other code
app_thread.join();
}