Возврат статуса из 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);
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д