Поэтому у меня есть очень простое приложение для Windows, где я хочу считать от 1 до 10000 и показать номера в этикетке:компоненты Обновление GUI из BeginInvoke
private void button1_Click(object sender, EventArgs e)
{
Thread thread = new Thread(() =>
{
for (int i = 0; i < 10000; i++)
{
BeginInvoke((MethodInvoker)delegate()
{
label3.Text = i.ToString();
});
}
});
thread.Start();
}
Проблема заключается в том, что текст метки не обновление и показывает только последний счетчик циклов, т.е. 9999. Is BeginInvoke вызывается в потоке пользовательского интерфейса? Почему метка не обновляется правильно?
Спасибо.
Вы хотите, чтобы число увеличивалось каждый раз, когда вы нажимаете кнопку? – LaneL
@LaneL Нет, я хочу нажать кнопку и увидеть цифры до 10000. – user3723486
Использовать фоновый рабочий вместо этого ... см. Подробности здесь - https://msdn.microsoft.com/en-us/library/cc221403%28v = vs.95% 29.aspx – Sanket