Как распечатать идентификатор потока с помощью qDebug()
в среде Windows Qt
.
Идентификатор потока в Qt
Ответ 1
Я предполагаю, что вам нужен идентификатор потока текущего исполняемого потока (а не идентификатор потока конкретного объекта QThread):
qDebug() << QThread::currentThreadId();
Что следует учитывать: метод возвращает идентификатор платформы (проверьте docs). В Windows вы не можете использовать этот идентификатор с функциями API Win32, поскольку он возвращает псевдо id, а не реальный идентификатор потока.
Если ваше приложение будет работать только в Windows, и вам нужно сделать что-то значимое с идентификатором потока, вероятно, было бы лучше, если бы вы использовали GetCurrentThreadId().
Ответ 2
В окнах приложения обычно "отключают" из командной строки при их выполнении. Если вы добавите
win32:CONFIG+=console
ваши приложения заблокируют командную строку и распечатывают инструкции qDebug.
Ответ 3
Так как базовая реализация QThread является pthreads, вы можете использовать (я предполагаю, что вы хотите использовать ID)
pthread_t = pthread_self();
из исполняемого потока.
Значение, возвращаемое из QThread:: currentThreadId(), не переносится.