簡體   English   中英

Qt庫中的GUI線程檢測

[英]GUI thread detecting in the Qt library

我需要知道我的函數運行在哪個線程的上下文中,是主GUI線程還是某個工作線程。

我不能使用一個簡單的解決方案將QThread指針存儲在main函數中並將其與QThread :: currentThread()進行比較,因為我正在編寫一個庫而我無法訪問main函數。 我當然可以創建InitMyLibary()函數並要求庫用戶在GUI線程的上下文中調用它,但我真的反對這一點。

如果你在lib中有Qt,你可以請求應用程序對象的線程。 應用程序對象總是生活在主要的gui線程中。

void fooWorker()
{
    const bool isGuiThread = 
        QThread::currentThread() == QCoreApplication::instance()->thread();

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM