У меня есть цикл, который принимает имя файла из списка, выполняет вызов system(), а затем перемещает это имя файла в другой список. Проблема в том, что он не перемещает имена файлов по одному за раз, но ждет, пока весь цикл не будет закончен, и сразу перемещает их. Что бы я сделал, чтобы заставить его выполнять то, что я хочу?Loop не обновляет списки до тех пор, пока не будет выполнено iterating
петля:
for each(String^% file in filename)
{
int x = convert(file);
lbComplete->Items->Add(lbFiles->Items[0]); // place the completed file
lbFiles->Items->Remove(lbFiles->Items[0]); // in the other listbox
}
Функция преобразования(), который содержит системный вызов:
int convert(String^ file)
{
std::stringstream ss;
std::string dir, fileAddress, fileName, outputDir;
...
return system(ss.str().c_str());
}
Возможно, это проблема с отсутствием вызова обновления экрана/виджета между обновлениями? –
Похоже, консенсус верит в это. Не знал, что мне нужно это делать, так как я никогда не работал с формами. Угадайте, я пойду посмотрю, как – Justen
В вашем цикле вы не даете системному времени перерисовывать элементы управления, вам нужно разрешить событиям рисования между каждой итерацией цикла, если вы хотите увидеть его на экране - что вызов зависит от того, какой пользовательский интерфейс вы используете (о котором вы не упомянули). –