gpt4 book ai didi

c++ - 在Qt中有什么快速触发信号槽的好方法吗?

转载 作者:行者123 更新时间:2023-11-30 03:37:15 25 4
gpt4 key购买 nike

Qt中多线程使用'emit'发送大量信号,触发很慢。貌似有排队机制。有没有什么好的方法可以快速触发线上的一个信号槽?

最佳答案

你问的是Qt::DirectConnection。您需要在 connect() 中指定它以保证插槽将立即被调用。

使用时:

The slot is invoked immediately when the signal is emitted. The slot is executed in the signalling thread.

否则,默认的 Qt 方式称为 Qt::AutoConnection

If the receiver lives in the thread that emits the signal, Qt::DirectConnection is used. Otherwise, Qt::QueuedConnection is used. The connection type is determined when the signal is emitted.

您可以在 connect() 中指定连接类型:

QMetaObject::Connection QObject::connect(const QObject *sender, const    
char *signal, const QObject *receiver, const char *method,
Qt::ConnectionType type = Qt::AutoConnection)

关于这两者之间的区别以及如何使用的很好的答案是 here .

关于c++ - 在Qt中有什么快速触发信号槽的好方法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40275711/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com