如何使得ui界面接收的数据域次线程发送的数据同步
子线程接收一帧视频数据,当接收到一帧后发送信号给ui界面,使界面能够显示这一帧的数据。现在是ui只能显示这一帧数据的五分之一。感觉就是数据的收发两端不同步,子线程接收的太快,主线程还没有显示完全,下一帧的数据就已经传过来了,求大神们给我一个解决的办法,谢谢 多线程 界面 视频
[解决办法]
第一,如果是显示过慢的话,做了双缓冲了吗
第二,两个线程的信号连接的类型设置同步了吗
bool QObject::connect ( const QObject * sender, const char * signal, const QObject * receiver, const char * method, Qt::ConnectionType type = Qt::AutoConnection )
enum Qt::ConnectionType
This enum describes the types of connection that can be used between signals and slots. In particular, it determines whether a particular signal is delivered to a slot immediately or queued for delivery at a later time.
ConstantValueDescription
Qt::AutoConnection0(default) If the signal is emitted from a different thread than the receiving object, the signal is queued, behaving as Qt::QueuedConnection. Otherwise, the slot is invoked directly, behaving as Qt::DirectConnection. The type of connection is determined when the signal is emitted.
Qt::DirectConnection1The slot is invoked immediately, when the signal is emitted.
Qt::QueuedConnection2The slot is invoked when control returns to the event loop of the receiver's thread. The slot is executed in the receiver's thread.
Qt::BlockingQueuedConnection4Same as QueuedConnection, except the current thread blocks until the slot returns. This connection type should only be used where the emitter and receiver are in different threads. Note: Violating this rule can cause your application to deadlock.
Qt::UniqueConnection0x80Same as AutoConnection, but the connection is made only if it does not duplicate an existing connection. i.e., if the same signal is already connected to the same slot for the same pair of objects, then the connection will fail. This connection type was introduced in Qt 4.6.
Qt::AutoCompatConnection3The default type when Qt 3 support is enabled. Same as AutoConnection but will also cause warnings to be output in certain situations. See Compatibility Signals and Slots for further information.