Skip to content

Latest commit

 

History

History
7 lines (4 loc) · 623 Bytes

60、如何安全的在另外一个线程中调用QObject对象的接口.md

File metadata and controls

7 lines (4 loc) · 623 Bytes

60、如何安全的在另外一个线程中调用QObject对象的接口

QObject被设计成在一个单线程中创建与使用,因此,在一个线程中创建一个对象,而在另外的线程中调用它的函数,这样的行为不能保证工作良好。

使用信号槽的队列连接或者QT的反射系统提供的QMetaObject::invokeMethed的队列连接调用。这要求接口必须是内省的,也就是说这个函数要么是一个槽函数,要么标记有Q_INVOKABLE宏。

将事件提交到接收对象所在线程的事件循环;当事件发出时,响应函数就会被调用。