나는 새 스레드, 소켓에 연결 당 하나 만듭니다 (어느 정도) 간단한 프로그램이 있습니다QObject를 : findChildren와 QThread
void TelnetServer::incomingConnection(qintptr socketDescriptor)
{
TelnetConnection *thread = new TelnetConnection(socketDescriptor);
connect(thread, SIGNAL(shutdownRequested()), m_controller, SLOT(shutdown()));
connect(thread, SIGNAL(finished()), thread, SLOT(deleteLater()));
thread->start();
}
새 스레드 후 생성을, I 출력이 모든 목록을 qDebug하기 이 같은 QThreads을 만든 부모 (TelnetConnection)의 어린이 : 내 QThreads는 QObject를에서 decend
QList<QObject*> activeTelnetConnections = m_telnetserver->findChildren <QObject *>(); // Find all QThreads that children of telnetserver
qDebug() << "Children: " << activeTelnetConnections;
때문에, 나는 QThreads 더 많은 목록을 볼 것으로 예상. 그러나 Qthreads를 찾을 수 없습니다! 이것이 내가 본 것입니다 :
Children: (QNativeSocketEngine(0x7eb880) , QSocketNotifier(0x7ea5f0))
왜 하위 스레드가 보이지 않습니까? 이것은 쓰레드가 부모 객체와 더 이상 연관되지 않는다는 것을 의미합니까? 아니면 여기서 뭔가 잘못하고있는 것입니까 ...
그건 그렇고 - 나는 생성자의 초기화 라인에 부모를 설정해야했고 그 다음에는 볼 수있었습니다! – TSG