Возврат статуса из Task - C#
Формулировка задачи:
Привет! В общем суть проблемы:
Моё приложение слишком долго выполняется, и поэтому решил попробовать вынести код в Task.
Так вот во время выполнения Task он должен оповещать о своем прогрессе изменяя положение в ProgressBar и отображая в Label что он делает сейчас.
Так вот столкнулся с тем, что если я напрямую из Task'а буду обновлять ProgressBar и Label, то форма будет провисать.
Как правильно передавать статус из Task'а на форму?
Зарисовка моей проблемы:
async Task thr2() { for (int i = 0; ; i++) { toolStripProgressBar1.Value = i; // из-за всех этих манипуляций форма зависает toolStripStatusLabel1.Text = i.ToString(); Thread.Sleep(500); } } private async void button1_ClickAsync(object sender, EventArgs e) { toolStripProgressBar1.Maximum = int.MaxValue; thr2(); }
Решение задачи: «Возврат статуса из Task»
textual
Листинг программы
Task.Run(thr2);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д