[英]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.