我有一个主GUI类和另一个Worker类:第一个处理GUI事务(将QPixmap绘制到QGraphicsScene中),第二个处理计算事务(在该QPixmap上绘制QLine和QPoint)。这两个类在两个不同的线程中运行。当我创建Worker线程时,将GUI的QPixmap地址传递给Worker类,因此它们共享相同的对象。
QPixmap在Worker类中被修改,并在GUI类中被绘制。即使我没有任何问题,我决定使用QMutex确保程序在绘制QPixmap时不会尝试访问它。现在,为了做到这一点,我在GUI类和Worker类之间共享一个QMutex(Worker类再次具有指向GUI的QMutex的指针)。每当我读取或修改QPixmap时,我都会锁定QMutex。
这是一种有效的方法吗?到目前为止,我从未收到过错误,但我想知道它是否在逻辑上正确,以及Qt是否提供更好的方法来实现此目的。
提前感谢您。
QPixmap在Worker类中被修改,并在GUI类中被绘制。即使我没有任何问题,我决定使用QMutex确保程序在绘制QPixmap时不会尝试访问它。现在,为了做到这一点,我在GUI类和Worker类之间共享一个QMutex(Worker类再次具有指向GUI的QMutex的指针)。每当我读取或修改QPixmap时,我都会锁定QMutex。
这是一种有效的方法吗?到目前为止,我从未收到过错误,但我想知道它是否在逻辑上正确,以及Qt是否提供更好的方法来实现此目的。
提前感谢您。