QNetWorkAccessManager erzeugt 760 Threads
Verfasst: 30. November 2012 18:56
Hallo
Ich habe ein Problem mit dem QNetWorkaccessManager.....
Ich möchte eine Liste mit Werten
P´S) an die API einer Webseite schicken, das funktioniert auch alles prima....
nur beim Wert 70x/ca.4500 Einträgen bekomme ich
hier die beiden Funktionen
die Schleifen sind für die Unterteilung in 50er Schritte, damit möchte ich mir einen Fortschrittsbalken bauen ^^, daran liegt es aber nicht, das "Abarbeiten" von immer 50 Einträgen klappt prima.
auch die "Antworten" kommen wie erwartet an werden der QStringlist hinzugefügt....
Mir ist schon klar das die Fehlermeldung bedeutet das hier xxx threads erzeugt wurden und jetzt Feierabend ist.....
Aber wie beende ich die Threads welche vom QNetworkRequest bzw. QNetworkreply erzeugt wurden sind ?
bspw. bewirkt reply->deletelater(); das mein Programm abschmiert.... hier scheine ich wieder einmal ein Verständnisproblem zu haben wo ich hoffe das mir einer von euch helfen kann
Ich habe ein Problem mit dem QNetWorkaccessManager.....
Ich möchte eine Liste mit Werten
nur beim Wert 70x/ca.4500 Einträgen bekomme ich
Code: Alles auswählen
QThread::start: Failed to create thread ()
"203.161.103.17" : 747
QThread::start: Failed to create thread ()
"203.206.223.144" : 748
QThread::start: Failed to create thread ()
"203.217.173.146" : 749
QThread::start: Failed to create thread ()
Code: Alles auswählen
void MainWindow::apicheck()
{
qDebug() << "Sektor:" << t1;
if (t4 == z1)
{
t1 = t1 + z2a;
}
QString ApiCheckIP;
while (t3 < t1)
{
ApiCheckIP = "http://api.ip-adress.com/?u=SCHLÜSSEL=" + iplist[t3];
qDebug() << iplist[t3] << " : " << t3;
manager = new QNetworkAccessManager(this);
connect(manager, SIGNAL(finished(QNetworkReply*)),this, SLOT(apianswer(QNetworkReply*)));
manager->get(QNetworkRequest(QUrl(ApiCheckIP)));
++t3;
}
++t4;
}
void MainWindow::apianswer(QNetworkReply *reply)
{
apilist.append(reply->readLine());
//qDebug() << "apilist.size()" << apilist.size;
//delete reply;
//delete manager;
if (t1 == apilist.size())
{
t1 = t1 + t2;
apicheck();
}
}
auch die "Antworten" kommen wie erwartet an werden der QStringlist hinzugefügt....
Mir ist schon klar das die Fehlermeldung bedeutet das hier xxx threads erzeugt wurden und jetzt Feierabend ist.....
Aber wie beende ich die Threads welche vom QNetworkRequest bzw. QNetworkreply erzeugt wurden sind ?
bspw. bewirkt reply->deletelater(); das mein Programm abschmiert.... hier scheine ich wieder einmal ein Verständnisproblem zu haben wo ich hoffe das mir einer von euch helfen kann