天天看点

QT里调用pthread_create

通常我们习惯写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()在析构函数里面调用,用于退出线程

继续阅读