2016-11-17 5 views

ответ

1

Нет, конечно.

Один поток может управляться только 1 QThread, потому что он будет создан внутри внутри void QThread::start(Priority), там уже ни в коем случае, чтобы установить нить на QThread

От qthread_unix.cpp

int code = pthread_create(&threadId, &attr, QThreadPrivate::start, this); 

pthread_create будет начать новый поток.

От qthread_win.cpp

#if defined(Q_CC_MSVC) && !defined(_DLL) // && !defined(Q_OS_WINRT) 
# ifdef Q_OS_WINRT 
    // If you wish to accept the memory leaks, uncomment the part above. 
    // See: 
    // https://support.microsoft.com/en-us/kb/104641 
    // https://msdn.microsoft.com/en-us/library/kdzttdcb.aspx 
# error "Microsoft documentation says this combination leaks memory every time a thread is started. " \ 
    "Please change your build back to -MD/-MDd or, if you understand this issue and want to continue, " \ 
    "edit this source file." 
# endif 
    // MSVC -MT or -MTd build 
    d->handle = (Qt::HANDLE) _beginthreadex(NULL, d->stackSize, QThreadPrivate::start, 
              this, CREATE_SUSPENDED, &(d->id)); 
#else 
    // MSVC -MD or -MDd or MinGW build 
    d->handle = (Qt::HANDLE) CreateThread(NULL, d->stackSize, (LPTHREAD_START_ROUTINE)QThreadPrivate::start, 
              this, CREATE_SUSPENDED, reinterpret_cast<LPDWORD>(&d->id)); 
#endif // Q_OS_WINRT 

CreateThread Как и _beginthreadex создаст новый поток, конечно.

+0

Но у меня в моей программе были получены различные указатели на объект QThread с использованием QOject :: QThread(), но все они возвращают тот же дескриптор, указывая, что они фактически управляют одним и тем же потоком. Как это возможно? –

+0

Чтобы уточнить; с ручкой Я имею в виду returnvalue от QThread :: currenthThreadId() –

+1

@LennartRolland Вы имеете в виду функцию '' QObject :: thread'? Эта функция возвращает указатель на 'QThread', в котором живет этот объект. Поскольку большая часть вашего объекта будет жить в основном потоке, он вернет ** тот же указатель **, это означает, что это тот же самый 'QThread' ** – Danh

 Смежные вопросы

  • Нет связанных вопросов^_^