我有一个GUI线程,其中创建了QOpenGLWidget对象。我使用另一个线程来处理数据,并为图像生成RGBA值。我无法在数据处理线程中调用QOpenGLWidget对象。如何将数据从数据处理线程发送到QOpenGLWidget对象?(The数据处理线程是使用boost创建的,因此我无法使用需要QThread的moveToThread())
moveToThread()
suzh9iv81#
不要使用QThread和信号槽进行“实时”数据通信,因为它是有漏洞的。您应该使用SafeQueue架构,如下所示:https://codetrips.com/2020/07/26/modern-c-writing-a-thread-safe-queue/并记住处理队列大小以避免溢出。
1条答案
按热度按时间suzh9iv81#
不要使用QThread和信号槽进行“实时”数据通信,因为它是有漏洞的。您应该使用SafeQueue架构,如下所示:https://codetrips.com/2020/07/26/modern-c-writing-a-thread-safe-queue/
并记住处理队列大小以避免溢出。