我有一個從列表框中獲取文件名,執行system()調用,然後將該文件名移動到另一個列表框的循環。問題是,它不會一次一個地移動文件名,而是一直等到整個循環完成並一次移動它們。我該怎麼做才能讓它達到我想要的效果?循環不會更新列表框直到迭代完成
循環:
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());
}
這可能是更新之間缺少屏幕/小部件刷新調用的問題嗎? – 2010-06-02 14:13:40
看起來像共識認爲如此。不知道我需要這樣做,因爲我從來沒有真正使用過表單。猜猜我會去查找如何 – Justen 2010-06-02 14:19:00
在你的循環中,你不給系統時間來重繪你的控件,如果你想在屏幕上看到它,你需要允許繪製事件在每個循環迭代之間流動 - 什麼調用取決於你使用的是哪種UI(你沒有提到)。 – 2010-06-02 14:24:11