Nya*_*uko 3 c++ qt pass-by-reference pass-by-value signals-slots
许多qt示例做了以下事情:
signal: passByConstRef(const QImage &)
slot: receivedByConstRef( const QImage &)
Run Code Online (Sandbox Code Playgroud)
它们通过不同线程中的排队连接进行连接.在主题1中:
{QImage image;
image = fromData(...);
emit passByConstRef(image);
}
Run Code Online (Sandbox Code Playgroud)
在主题2中:
receivedByConstRef(const QImage& image){
...
pixmap = fromImage(image);
...
}
Run Code Online (Sandbox Code Playgroud)
由于信号槽通过const Ref传递QImage,这意味着没有复制发生,有可能在构建"pixmap"时,线程1中"图像"的生命周期结束并导致构造失败线程2中的"pixmap".
| 归档时间: |
|
| 查看次数: |
1510 次 |
| 最近记录: |