[英]For loop wait untill other task is complete
我的問題是我有這個上傳隊列,當我將x數量的文件放入隊列時,它只顯示最后一個文件,因為for循環進行得太快了。
for (i = 0; i < uploadFileList.Count; i++)
{
if (percentage == 100)
{
projects_tab.IsEnabled = true;
wait_for_upload_text.Visibility = Visibility.Hidden;
ModelUploadTXT.Text = "Upload done!";
FooterProgressBar.Value = 0;
FooterProgressBar.Foreground = Brushes.LimeGreen;
cancel_upload_model_button.Visibility = Visibility.Hidden;
SelectedFileText.Text = "Choose model(s) to import!";
try
{
uploadClient.Dispose();
}
catch (Exception asd)
{
}
}
else
{
choosedProjetName = uploadFileList[i];
ShowHome();
cancel_upload_model_button.Visibility = Visibility.Visible;
ModelUploadTXT.Text = "Uploading " + choosedProjetName + FooterProgressBar.Value.ToString("f0") + " % " + (bytesIn / 1000000).ToString("f2") + "Mb /" + (totalBytes / 1000000).ToString("f2") + "Mb";
FooterProgressBar.Foreground = Brushes.Orange;
}
}
我嘗試使用
Task.Delay(1)
System.Theading.Thread.Sleep(1)
解決這個問題,但是他們沒有成功。 因此,我基本上需要等待的百分比是100,然后再轉到下一個索引。
嘗試使用While條件保存代碼。
for (i = 0; i < uploadFileList.Count; i++)
{
choosedProjetName = uploadFileList[i];
ShowHome();
cancel_upload_model_button.Visibility = Visibility.Visible;
ModelUploadTXT.Text = "Uploading " + choosedProjetName + FooterProgressBar.Value.ToString("f0") + " % " + (bytesIn / 1000000).ToString("f2") + "Mb /" + (totalBytes / 1000000).ToString("f2") + "Mb";
FooterProgressBar.Foreground = Brushes.Orange;
while (percentage < 100)
{
continue;
}
projects_tab.IsEnabled = true;
wait_for_upload_text.Visibility = Visibility.Hidden;
ModelUploadTXT.Text = "Upload done!";
FooterProgressBar.Value = 0;
FooterProgressBar.Foreground = Brushes.LimeGreen;
cancel_upload_model_button.Visibility = Visibility.Hidden;
SelectedFileText.Text = "Choose model(s) to import!";
try
{
uploadClient.Dispose();
}
catch (Exception asd)
{
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.