2009-06-05 18 views

Respuesta

16

Asumo que quieren que el ID del tema del hilo de ejecución actual (y no el ID del tema de un objeto específico QThread):

qDebug() << QThread::currentThreadId(); 

Aspectos a considerar: el método devuelve un identificador específico de la plataforma (verifique el docs). En Windows, no puede usar esta identificación con las funciones de la API de Win32, ya que devuelve un pseudo-id y no la identificación de la hebra real.

Si su aplicación solo se ejecutará en Windows y necesita hacer algo significativo con la id. Del hilo, probablemente sea mejor si usó GetCurrentThreadId().

+1

¿Sigue siendo correcto? Veo que currentThreadId() devuelve un manejador (http://qt-project.org/doc/qt-4.8/qthread.html#currentThread), que presumiblemente será diferente cada vez que se invoca. ¿No le gustaría usar QThread :: cur rentThread() en su lugar, ¿cuál es un puntero a la estructura de datos del hilo? –

0

En Windows, las aplicaciones normalmente se "desconectan" de la línea de comandos cuando las ejecuta. Si agrega

win32:CONFIG+=console 

sus aplicaciones bloquearán el símbolo del sistema e imprimirán las declaraciones de qDebug.

-3

Desde la implementación subyacente de un QThread es pthreads, se puede utilizar (I "m asumiendo que usted quiere una identificación utilizable)

pthread_t = pthread_self(); 

desde el interior de la rosca que se está ejecutando.

El valor devuelto por QThread :: currentThreadId() no es portable

+0

Lo que podría haber querido decir: http://doc.qt.nokia.com/4.7/qthread.html#currentThreadId – mbx

+4

-1 Dado que la pregunta específicamente pregunta cómo recuperar la ID del hilo en Qt. Qt es compatible con múltiples plataformas. –

Cuestiones relacionadas