通常我们习惯写C代码,有时候也要将C代码转换成QT工程代码,绝大部分是可以直接创建class然后加类名实现的,但是我们在将C语音的pthread_create进行直接复制的时候,在QT中却会遇到各种问题;
比如说pthread_create(&pid, NULL, AAA, “AAA”);
编译出现以下错误:
error: invalid conversion from ‘const void*’ to ‘void*’
xxx:112: error: initializing argument 4 of ‘int pthread_create(pthread_t*, const pthread_attr_t*, void* ()(void)
那是因为QT下,一般都自定义类MyThread继承 Qt提供的QThread类来实现线程的调用。
比如,class MyThread :public QThread{
public:
void run();
}
void MyThread::run()
{
实现代码
}
在其他函数里面里 用start()调用,这个方法是QT提供的。
比如 Int BBB()
{
MyThread ccc;
ccc.start();
ccc.quit();
}
一般quit()在析构函数里面调用,用于退出线程