Mam funkcję, która wywołuje QNetworkRequest, z tym, że chciałbym wywoływać w pętli.
Napisałem taki kod:
connect(d, &Downloader::finished, this, &MainWindow::doDownload_Finished);
for (unsigned int i = 0; i< favoriteChannelsList.size(); i++){
currentChannel = favoriteChannelsList[i];
d->doDownload(currentChannel);
}
Ta pętla działa mi dobrze, tzn wywołuje doDownload_Finished()
tak jak trzeba.
Chciałbym wykorzystać zmienną currentChannel
w każdym wywołaniu doDownload_Finished()
.
No i tu zaczynają się schody, gdyż currentChannel
zmienia się bardzo szybko nie czekając, aż doDownload_Finished()
zakończy się, no i na końcu okazuje się, że pomimo iż wywołanie d->doDownload(currentChannel);
przyjmuje za każdym obiegiem pętli inną wartość, to już dla każdego wywołania doDownload_Finished()
currentChannel
ma ostatnią przypisaną wartość.
Nie jestem pewien w jaki sposób najlepiej rozwiązać ten problem. Myślałem o wstrzymaniu wykonywania pętli dopóki nie zakończy się wykonywanie doDownload_Finished()
, to było by chyba najprostsze rozwiązanie, ale nie wiem jak to zapisać. A może w jakiś inny sposób lepiej to rozwiązać?