Для ожидания цикла до завершения другой задачи - PullRequest
0 голосов
/ 04 июня 2018

Моя проблема в том, что у меня есть эта очередь загрузки, и когда я помещаю 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, а затем перейти к следующему индексу.

1 Ответ

0 голосов
/ 04 июня 2018

Попытайтесь использовать условие 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)
       {

       }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...