Я экспериментирую с потоками и создал метод 'control' для сравнения с тем, где вся обработка происходит в потоке пользовательского интерфейса. Следует запустить метод, который обновит метку в конце. Этот метод выполняется четыре раза, но метки не обновляются, пока все 4 не будут завершены. Я ожидал, что один ярлык будет обновляться примерно каждые 2 секунды. Вот код:
private void button1_Click(object sender, EventArgs e)
{
Stopwatch watch = new Stopwatch();
watch.Start();
UIThreadMethod(lblOne);
UIThreadMethod(lblTwo);
UIThreadMethod(lblThree);
UIThreadMethod(lblFour);
watch.Stop();
lblTotal.Text = "Total Time (ms): " + watch.ElapsedMilliseconds.ToString();
}
private void UIThreadMethod(Label label)
{
Stopwatch watch = new Stopwatch();
watch.Start();
for (int i = 0; i < 10; i++)
{
Thread.Sleep(200);
}
watch.Stop();
// this doesn't set text right away
label.Text = "Done, Time taken (ms): " + watch.ElapsedMilliseconds;
}
Может быть, я просто упускаю что-то простое, но я застрял. Есть идеи? Спасибо.