c++ multithreading qt

c++ - Detección de hilo GUI en la biblioteca de Qt



qthread exec (1)

Si tiene Qt en la lib, puede solicitar el hilo del objeto de la aplicación. El objeto de la aplicación siempre está viviendo en el hilo principal de GUI.

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

Necesito saber en qué contexto se está ejecutando mi función, es la secuencia principal de la GUI o alguna cadena de trabajo.

No puedo usar una solución simple para almacenar el puntero QThread en la función principal y compararlo con QThread :: currentThread () porque estoy escribiendo una biblioteca y no tengo acceso a la función principal. Por supuesto, puedo crear la función InitMyLibary () y requerir que el usuario de la biblioteca lo llame en el contexto del hilo de la GUI, pero estoy realmente en contra de esto.