|
1Qter豆
//A是个纯虚函数导出的dll,大概实现方式
class A
{
...
thread thd(thread_func);//内部线程,发送数据的
release(){
thd.join();//A退出的时候需要release,此时要join线程
}
...
thread_func()
{
send_data();//发送数据
}
}
send_data是暴露给我的,我在里面使用了qt的信号槽同步数据
connect(..., blockqueueconnect);//blockqueueconnect连接
在mainwindow里面响应这个数据,刷新UI
问题是,当我点击关闭的时候,需要调用A的release()函数,此时线程thread_func有可能同时来了数据,
于是就阻塞等待刷新UI后才返回。但是主进程此时却在等待A的线程退出。这样就造成了死锁。
这个问题应该怎么解决呢?信号槽是个好东西,不想抛弃。
|
|