Мое приложение зависает, когда я пытаюсь получить доступ к 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;
}
}
Есть ли способ сделать эту конструкцию безопасной?
Я был пойман в бесконечной петле, так как
QList<QLinkedList<QUrl>* >::iterator it = mList.begin();
while (it != mList.end()) {
QLinkedList<QUrl>* list = *it;
никогда не увеличивал итератор ..