QThreadStorage 類提供每綫程數據存儲。 更多...
| 頭: | #include <QThreadStorage> |
| qmake: | QT += core |
注意: 此類的所有函數 綫程安全 .
| QThreadStorage () | |
| ~QThreadStorage () | |
| bool | hasLocalData () const |
| T & | localData () |
| T | localData () const |
| void | setLocalData (T data ) |
QThreadStorage 是提供每綫程數據存儲的模闆類。
The setLocalData () 函數為調用綫程存儲單特定綫程值。以後數據可以被訪問使用 localData ().
The hasLocalData () 函數允許程序員確定先前是否有設置數據使用 setLocalData () function. This is also useful for lazy initialization.
若 T 是指針類型,QThreadStorage 擁有數據的所有權 (必須在堆上被創建采用
new
) 並在綫程正常退齣或憑藉終止退齣時刪除它。
例如,以下代碼使用 QThreadStorage 為每個調用 cacheObject() 和 removeFromCache() 函數的綫程存儲單緩存。緩存被自動刪除,當調用綫程退齣時。
QThreadStorage<QCache<QString, SomeClass> > caches; void cacheObject(const QString &key, SomeClass *object) { caches.localData().insert(key, object); } void removeFromCache(const QString &key) { if (!caches.hasLocalData()) return; caches.localData().remove(key); }
main()
綫程。QThreadStorage 會刪除所有數據集為
main()
綫程當
QApplication
被銷毀,不管是否
main()
綫程實際已完成。
另請參閱 QThread .
構造新的每綫程數據存儲對象。
銷毀每綫程數據存儲對象。
注意:存儲的每綫程數據不會被刪除。任何數據留在 QThreadStorage 會被泄漏。確保所有綫程使用 QThreadStorage 已退齣再刪除 QThreadStorage .
另請參閱 hasLocalData ().
若 T 是指針類型,返迴
true
若調用綫程有非零可用數據。
若 T 是值類型,返迴數據是否已經被構造通過調用 setLocalData or localData .
另請參閱 localData ().
返迴由調用綫程設置的數據的引用。
若未設置數據,這將創建默認 T 類型構造實例。
另請參閱 setLocalData () 和 hasLocalData ().
這是重載函數。
返迴由調用綫程設置的數據的副本。
另請參閱 hasLocalData ().
把調用綫程的本地數據設為 data 。以後可以訪問它使用 localData () 函數。
若 T 是指針類型, QThreadStorage 擁有數據的所有權,並自動刪除它當綫程退齣 (正常或憑藉終止) 時或當 setLocalData() 被再次調用。
另請參閱 localData () 和 hasLocalData ().