大家好,我在QT多线程编程时,在线程内部调用了一个外部函数,外部函数中使用了emit来发送信号,请问这样是否会存在问题?另外,在线程中调用外部函数时需要注意哪些问题?
1条回答 默认 最新
- 孤浪 2014-11-18 04:02关注
我编写的代码大概如下:
class myThread:public QThread;
class DeviceScaner:public QObject
{
Q_OBJECTpublic:
DeviceScaner();
~DeviceScanner();
void readData();signals:
void readyRead(QString data);private:
myThread *thread;
bool run_flag;
};DeviceScanner::DeviceScanner()
{
run_flag = true;
thread = new myThread(this);
if(thread)
{
thread->start();
}
}DeviceScanner::~DeviceScanner()
{
run_flag = false;
if(thread)
{
thread->wait();
delete thread;
}
}void DeviceScaner::readData()
{
emit readyRead("Test Data");
}class myThread:public QThread
{
public:
myThread(void *param);protected:
void run();private:
void *lp;
};myThread::myThread(void *param)
{
lp = param;
}void myThread::run()
{
if(lp == NULL)
{
return;
}
DeviceScaner lpScanner = (DeviceScaner)lp;
whilt(lp->run_flag)
{
sleep(1);
lp->readData();
}
}
代码是临时敲的,可能会有错误。DeviceScanner类中的信号会连接到其它类的槽,小弟使用QT的时间不长,不知道这样的用法是否正确,有精通QT的大神还望赐教。
解决 无用评论 打赏 举报
悬赏问题
- ¥15 想问一下stata17中这段代码哪里有问题呀
- ¥15 flink cdc无法实时同步mysql数据
- ¥100 有人会搭建GPT-J-6B框架吗?有偿
- ¥15 求差集那个函数有问题,有无佬可以解决
- ¥15 【提问】基于Invest的水源涵养
- ¥20 微信网友居然可以通过vx号找到我绑的手机号
- ¥15 寻一个支付宝扫码远程授权登录的软件助手app
- ¥15 解riccati方程组
- ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
- ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决