假设我有一个信号
sendImage(const QImage&)
,它连接到另一个线程中的一个槽updateLabel(const QImage&)
,该槽将把QImage转换为QPixmap,然后将其放置在QLabel中。现在我想知道,如果我将函数const QImage& prepareImage()
作为信号的参数,例如emit sendImage(prepareImage())
,并且该信号每秒发射数十次,那么它是线程安全的吗?还是存在一种可能性,即prepareImage和updateLabel同时访问图像而导致程序崩溃的竞争条件?
detach
时,QImage
才会执行深层复制。您无法通过复制QImage
实例来引发深度复制。 - Kuba hasn't forgotten MonicaQImage
操作都可能会同步和复制图像。 - Kuba hasn't forgotten Monicastd::
容器,则将强制执行深度复制,这是非常浪费的,没有任何理由。 - Kuba hasn't forgotten Monica