在Qt中多個線程使用'emit'發送大量信號,觸發非常慢。看似有排隊機制。有沒有什麼好的方法來快速觸發線路上的信號插槽?有沒有什麼好的方法來快速觸發Qt中的信號插槽?
0
A
回答
1
你在問什麼叫Qt::DirectConnection
。您需要在connect()
中指定它以確保插槽將立即被調用。
當它用來:當所述信號被髮射
槽被立即調用。該插槽在信號線程中執行。
否則,默認的Qt方式叫做Qt::AutoConnection
。
如果接收器駐留在發出信號的線程中,則使用Qt :: DirectConnection。否則,使用Qt :: QueuedConnection。信號發射時確定連接類型。
可以在connect()
指定連接類型:
QMetaObject::Connection QObject::connect(const QObject *sender, const
char *signal, const QObject *receiver, const char *method,
Qt::ConnectionType type = Qt::AutoConnection)
關於這兩個以及如何使用是here之間的差異很好的答案。
相關問題
- 1. 沒有這樣的插槽/信號(Qt)
- 2. C++ Qt信號和插槽沒有觸發
- 3. qt,信號插槽沒有連接?
- 4. QT中的信號插槽
- 5. 爲什麼我的Qt信號/插槽斷點未命中? (信號/插槽)
- 6. Qt信號插槽:信號已發送,但未插入插槽
- 7. QT信號/插槽
- 8. 爲什麼連接的信號有參數但插槽沒有?
- 9. Qt Qt中的信號和插槽
- 10. 在QT應用程序中沒有接收信號的插槽
- 11. Qt插槽和信號:在MainWindow中沒有匹配的功能
- 12. Qt - 在觸發的動作中連接信號/插槽
- 13. Qt對象::連接:沒有這樣的插槽信號主題插槽
- 14. 有沒有辦法從插槽中刪除特定的信號
- 15. Qt信號和插槽 - 沒有匹配的調用函數
- 16. Qt QProcess :: finished()信號沒有這樣的插槽
- 17. PySide(Qt)信號沒有到達我的插槽
- 18. Qt的要求從來沒有觸發成品()信號
- 19. 沒有依賴關係的最快的C++信號/插槽庫
- 20. Qt信號和插槽連接兩次...會發生什麼?
- 21. Qt - 發送插槽而不是信號
- 22. Qt連接信號插槽
- 23. QT信號和插槽
- 24. Qt連接信號插槽
- 25. Qt信號和插槽xml
- 26. QT-Dbus信號/插槽?
- 27. Qt PushButton信號和插槽
- 28. C++,Qt信號和插槽
- 29. 信號和插槽QT
- 30. Qt中的信號和插槽究竟是什麼?
您是否想要在發出信號的線程中調用該插槽?如果是這樣,請確保它是線程安全的,並且它所調用的所有內容也都是線程安全的!特別是,GUI的東西都必須在主線程中發生! – hyde