Возврат статуса из Task - C#

Узнай цену своей работы

Формулировка задачи:

Привет! В общем суть проблемы: Моё приложение слишком долго выполняется, и поэтому решил попробовать вынести код в Task. Так вот во время выполнения Task он должен оповещать о своем прогрессе изменяя положение в ProgressBar и отображая в Label что он делает сейчас. Так вот столкнулся с тем, что если я напрямую из Task'а буду обновлять ProgressBar и Label, то форма будет провисать. Как правильно передавать статус из Task'а на форму? Зарисовка моей проблемы:
Листинг программы
  1. async Task thr2()
  2. {
  3. for (int i = 0; ; i++)
  4. {
  5. toolStripProgressBar1.Value = i; // из-за всех этих манипуляций форма зависает
  6. toolStripStatusLabel1.Text = i.ToString();
  7. Thread.Sleep(500);
  8. }
  9. }
  10. private async void button1_ClickAsync(object sender, EventArgs e)
  11. {
  12. toolStripProgressBar1.Maximum = int.MaxValue;
  13. thr2();
  14. }

Решение задачи: «Возврат статуса из Task»

textual
Листинг программы
  1. Task.Run(thr2);

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы