Приложение Qt зависает при доступе к QList & lt; QLlnkedList & lt; QUrl & gt; * & gt; от обратного вызова NetworkAccessManager-> gt;

Мое приложение зависает, когда я пытаюсь получить доступ к QList<QLinkedList<QUrl>* > в пределах replyFinished(QNetworkReply* networkReply); слот QNetworkAccessManager,

Я в основном зацикливаюсь один раз над списком, добавляю что-то в список и затем завершаю функцию

foreach (QLinkedList<QUrl>* list, mList) {
if (list->front() == url) {
list->prepend(someUrl);
mNetworkAccessManager->get(someUrl);
return;
}
}

В другом сценарии я делаю следующее:

QList<QLinkedList<QUrl>* >::iterator it = mList.begin();
while (it != mList.end()) {
QLinkedList<QUrl>* list = *it;
if (list->front() == networkReply->url()) {
// some operation with list->back();
mList.erase(it);
delete list;
break;
}
}

Есть ли способ сделать эту конструкцию безопасной?

0

Решение

Я был пойман в бесконечной петле, так как

QList<QLinkedList<QUrl>* >::iterator it = mList.begin();
while (it != mList.end()) {
QLinkedList<QUrl>* list = *it;

никогда не увеличивал итератор ..

0

Другие решения


По вопросам рекламы [email protected]