Параллель не работает должным образом (C# 2019) - PullRequest
0 голосов
/ 07 января 2020

У меня есть метод, подобный показанному ниже:

public void RunProgressBar()
{
   int i = 10;
   Invoke(new Action(() =>
   {
     while (i < 100)
     {
      progressBar1.Value += i;
      i += 10;
     }
   }));
}

И еще один метод длительного запуска, как показано ниже.

Public void RunCommand(bool value)
{                    
   classA.method1();
   classB.method2();
   classD.method3();   
   label.text = "Process Completes";                 
}

Я пытался запустить индикатор выполнения, когда RunCommand метод работает. Поэтому я использовал Parallel.

ParallelOptions parallelOptions = new ParallelOptions
    {
        MaxDegreeOfParallelism = 2
    };

Parallel.Invoke(parallelOptions, () => RunCommand(true), () => RunProgressBar()); 

Но это не работает параллельно. Когда я запускаю приложение, пользовательский интерфейс отображается в течение нескольких секунд, а затем, наконец, он показывает сообщение с меткой, и индикатор выполнения завершается вместе.

Я ищу решение, например, при нажатии кнопки запуска индикатор выполнения должен запускаться пока на этикетке не появится сообщение «Процесс завершен». Пожалуйста, помогите.

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