Поделиться через


Обзор модели приложений Visual Basic

Visual Basic предоставляет четко определенную модель для управления поведением приложений Windows Forms: модель приложения Visual Basic. Эта модель включает события для обработки запуска и завершения работы приложения, а также событий для перехвата необработанных исключений. Она также обеспечивает поддержку разработки одноэкземплярных приложений. Модель приложения расширяема, поэтому разработчики, которые нуждаются в большем контроле, могут настраивать методы, которые можно переопределить.

Используется для модели приложений

Обычное приложение должно выполнять задачи при запуске и завершении работы. Например, при запуске приложение может отображать экран-заставку, устанавливать подключения к базе данных, загружать сохраненное состояние и т. д. Когда приложение завершит работу, оно может закрыть подключения к базе данных, сохранить текущее состояние и т. д. Кроме того, приложение может выполнять определенный код при неожиданном завершении работы приложения, например во время необработанного исключения.

Модель приложений в Visual Basic упрощает создание одноэкземплярного приложения. Одно экземплярное приложение отличается от обычного приложения в том, что одновременно может выполняться только один экземпляр приложения. Попытка запуска второго экземпляра одноэкземплярного приложения приводит к уведомлению исходного экземпляра с помощью события StartupNextInstance, что была предпринята другая попытка запуска. Уведомление включает аргументы командной строки последующего экземпляра. Последующий экземпляр приложения затем закрывается до начала какой-либо инициализации.

Приложение с одним экземпляром запускается и проверяет, является ли оно первым экземпляром или последующим экземпляром приложения:

  • Если это первый случай, то он начинается как обычно.

  • Каждая последующая попытка запустить приложение, в то время как первая инстанция работает, приводит к значительно различающемуся поведению. Следующая попытка уведомляет первый экземпляр о аргументах командной строки, а затем немедленно завершает работу. Первый экземпляр обрабатывает событие StartupNextInstance, чтобы определить аргументы командной строки следующего экземпляра, и продолжает работу.

    На этой схеме показано, как последующий экземпляр сигнализирует первому экземпляру:

    Схема с изображением одного экземпляра приложения.

Обрабатывая событие StartupNextInstance, вы можете управлять поведением одного экземпляра приложения. Например, Microsoft Outlook обычно выполняется как одноэлементное приложение; При запуске Outlook и попытке повторного запуска Outlook фокус перемещается на исходный экземпляр, но другой экземпляр не открывается.

События в модели приложения

Следующие события находятся в модели приложения:

  • Запуск приложения. Приложение вызывает Startup событие при запуске. Обрабатывая это событие, можно добавить код, который инициализирует приложение перед загрузкой основной формы. Это Startup событие также обеспечивает отмену выполнения приложения на этом этапе процесса запуска при необходимости.

    Приложение можно настроить для отображения экрана-заставки во время запуска приложения. По умолчанию модель приложения скрывает экран-заставку при использовании аргумента командной строки /nosplash или -nosplash.

  • Одноэлементные приложения. Событие StartupNextInstance возникает при запуске последующего экземпляра одноэкземплярного приложения. Событие передает аргументы командной строки следующего процесса.

  • Необработанные исключения. Если приложение встречает необработанное исключение, оно вызывает UnhandledException событие. Обработчик этого события может проверить исключение и определить, следует ли продолжить выполнение.

    Событие UnhandledException не вызывается в некоторых обстоятельствах. Дополнительные сведения см. в разделе UnhandledException.

  • Изменения в сетевом подключении. Если доступность сети компьютера изменяется, приложение вызывает NetworkAvailabilityChanged событие.

    Событие NetworkAvailabilityChanged не вызывается в некоторых обстоятельствах. Дополнительные сведения см. в разделе NetworkAvailabilityChanged.

  • Завершение работы приложения. Приложение предоставляет событие Shutdown для оповещения о скором завершении работы. В этом обработчике событий можно убедиться, что операции, необходимые приложению для выполнения , закрытия и сохранения, например, завершены. Приложение можно настроить для завершения работы при закрытии основной формы или завершения работы только при закрытии всех форм.

Доступность

По умолчанию модель приложений Visual Basic доступна для проектов Windows Forms. Если вы настроите приложение на использование другого объекта запуска или запустите код приложения с помощью пользовательского Sub Mainобъекта, может потребоваться предоставить реализацию WindowsFormsApplicationBase класса для использования модели приложения. Сведения об изменении объекта запуска см. на странице приложения, конструкторе проектов (Visual Basic).

См. также