Вы можете использовать Application.DoEvents()
в .Net - но вам, вероятно, не следует. Это может вызвать все виды странного поведения, которое будет кошмаром для отладки. Я видел, как срабатывает событие OnClick кнопки, когда кнопка отключена (в качестве примера), и, в конечном счете, проследило ее до вызова DoEvents ().
Если ваша цель - просто посчитать и обновить метку - используйте Timer
.
Если вы делаете значимую работу - вам следует заняться многопоточностью.
Класс BackgroundWorker
делает это чертовски простым - вы можете сделать так, чтобы он сообщал о прогрессе и обновлял ваш контроль. Если вы не используете старую версию .NET Framework - вы также можете использовать Task
.
Сказав все это - независимо от того, какой подход вы выберете, - вы не сможете увидеть что-то внутри цикла, как вы показали в своем примере. Это просто произойдет слишком быстро (если вы не используете таймер и не установите соответствующее значение Tick).
Пример использования таймера
Самый простой способ сделать это - в конструкторе форм - перетащить компонент Timer (в группе «Компоненты») на форму. Вы можете отредактировать свойства и дать ему соответствующее имя и установить значение Tick примерно на 500 (это интервал между тиками в миллисекундах). Установите для параметра «Разрешено» значение «Истина».
Теперь щелкните элемент управления Timer и откройте окно свойств. Нажмите на значок событий и дважды щелкните текстовое поле Tick
. Это должно создать обработчик по умолчанию для вас.
Измените код так, чтобы он выглядел следующим образом:
Private A As Integer
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
' Update the text
Label1.Text = A.ToString
A += 1
' Stop the timer
If A >= 1000 Then
Timer1.Enabled = False
End If
End Sub