Метод My.Application.DoEvents

Обновлен: Ноябрь 2007

Обрабатывает все сообщения Windows, которые в данный момент находятся в очереди сообщений.

' Usage
My.Application.DoEvents()
' Declaration
Public Sub DoEvents()

Заметки

Метод My.Application.DoEvents позволяет приложению обрабатывать другие события, которые могут возникнуть при выполнии кода. Метод My.Application.DoEvents выполняет те же действия, что и метод DoEvents.

При запуске приложения Windows Forms оно создает новую форму, которая затем ожидает события для обработки. Каждый раз форма обрабатывает событие, такое как нажатие кнопки, и обрабатывая весь код, связанный с событием. Все остальные события ожидают в очереди. Пока код обрабатывает событие, приложение не отвечает. Например, окно не будет перерисовываться, если поверх него перетащить другое окно.

Если в коде вызывается My.Application.DoEvents, приложение может обрабатывать другие события. Например, если код добавляет данные в ListBox в цикле, после выполнения каждого шага цикла он вызывает My.Application.DoEvents для перерисовки формы, когда другое окно перетаскивается над ним. Если из кода удалить My.Application.DoEvents, форма не будет перерисовываться, пока обработчик событий нажатия кнопки не завершит выполнение.

Обычно данный метод используется в цикле для обработки сообщений.

bd65th41.alert_note(ru-ru,VS.90).gifПримечание.

Метод My.Application.DoEvents обрабатывает события иначе,чем это делает форма. Используйте многопоточность, чтобы сделать форму непосредственным обработчиком событий. Дополнительные сведения см. в разделе Многопотоковость в Visual Basic.

bd65th41.alert_caution(ru-ru,VS.90).gifВнимание!

Если метод, обрабатывающий событие пользовательского интерфейса, вызывает метод My.Application.DoEvents, то в этот метод может быть осуществлен повторный вход до его завершения. Это может произойти, поскольку метод My.Application.DoEvents обрабатывает сообщения Windows, а сообщения Windows могут порождать события.

Задачи

В приведенной далее таблице содержатся примеры задач, в которых используется метод My.Application.DoEvents.

To

См. в разделах

Разрешить форме ответить на ввод пользовательского интерфейса в состоянии занятости

Пошаговое руководство. Обработка событий

Пример

В этом примере используется метод My.Application.DoEvents для разрешения обновления пользовательского интерфейса TextBox1.

Private Sub TestDoEvents()
    For i As Integer = 0 To 10000
        TextBox1.Text = i.ToString
        My.Application.DoEvents()
    Next
End Sub

Этот код должен быть в форме, которая содержит компонент TextBox1 со свойством Text.

Требования

Пространство имен:Microsoft.VisualBasic.ApplicationServices

Класс:WindowsFormsApplicationBase

Сборка: библиотека времени выполнения Visual Basic (в Microsoft.VisualBasic.dll)

Доступность по типу проекта

Тип проекта

Доступно

Приложение Windows

Да

Библиотека классов

Нет

Консольное приложение

Нет

Библиотека элементов управления Windows

Нет

Библиотека веб-элементов управления

Нет

Служба Windows

Нет

Веб-узел

Нет

Разрешения

Могут потребоваться следующие разрешения.

Разрешение

Описание

FileIOPermission

Определяет возможность доступа к файлам и папкам. Связанное перечисление: Unrestricted.

UIPermission

Управляет разрешениями, относящимися к пользовательским интерфейсам и буферу обмена. Связанное перечисление: AllWindows.

Дополнительные сведения см. в разделах Управление доступом для кода и Запрос разрешений.

См. также

Ссылки

Объект My.Application

WindowsFormsApplicationBase.DoEvents

DoEvents