Возврат статуса из 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);