【发布时间】:2015-04-08 07:27:11
【问题描述】:
许多qt示例做了以下事情:
signal: passByConstRef(const QImage &)
slot: receivedByConstRef( const QImage &)
它们通过不同线程中的排队连接进行连接。 在线程 1 中:
{QImage image;
image = fromData(...);
emit passByConstRef(image);
}
在线程 2 中:
receivedByConstRef(const QImage& image){
...
pixmap = fromImage(image);
...
}
由于信号槽通过 const Ref 传递 QImage,这意味着没有发生复制,所以当“pixmap”正在构建时,线程 1 中“image”的生命周期是否已经结束并导致在线程 2 中构造“像素图”失败。
【问题讨论】:
标签: c++ qt pass-by-reference signals-slots pass-by-value