gpt4 book ai didi

c++ - Qt:信号槽通过常量引用传递

转载 作者:太空狗 更新时间:2023-10-29 20:12:19 26 4
gpt4 key购买 nike

许多 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:信号槽通过常量引用传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28394828/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com