Обзор модели приложения в Visual BasicOverview of the Visual Basic Application Model

Visual Basic предоставляет четко определенную модель для управления поведением приложений Windows Forms: модель приложения Visual Basic.Visual Basic provides a well-defined model for controlling the behavior of Windows Forms applications: the Visual Basic Application model. Эта модель включает события для обработки приложения запуска и завершения работы, а также события для перехвата необработанных исключений.This model includes events for handling the application's startup and shutdown, as well as events for catching unhandled exceptions. Он также обеспечивает поддержку для разработки приложения с одним процессом.It also provides support for developing single-instance applications. Модель приложения является расширяемой, поэтому разработчики, которым требуется больший контроль можно настраивать переопределяемые методы.The application model is extensible, so developers that need more control can customize its overridable methods.

Использование модели приложенияUses for the Application Model

Типичное приложение необходимо для выполнения задач при запуске и завершении работы.A typical application needs to perform tasks when it starts up and shuts down. Например при запуске, приложение можно отобразить экран-заставку, подключаться к базе данных, загрузить сохраненное состояние и так далее.For example, when it starts up, the application can display a splash screen, make database connections, load a saved state, and so on. При завершении работы приложения, его можно закрыть подключения к базе данных, сохранить текущее состояние и так далее.When the application shuts down, it can close database connections, save the current state, and so on. Кроме того, приложение может выполнить определенный код при завершении приложения вниз неожиданно, таких как во время необработанное исключение.In addition, the application can execute specific code when the application shuts down unexpectedly, such as during an unhandled exception.

Модель приложения Visual Basic позволяет легко создавать единственной приложения.The Visual Basic Application model makes it easy to create a single-instance application. Приложение в одном экземпляре отличается от обычного приложения тем, что только один экземпляр приложения может выполняться одновременно.A single-instance application differs from a normal application in that only one instance of the application can be running at a time. Попытка запуска другого экземпляра приложения одного экземпляра приводит к первоначальному уведомляется — с помощью параметра StartupNextInstance событий — еще одна попытка запуска была создана.An attempt to launch another instance of a single-instance application results in the original instance being notified—by means of the StartupNextInstance event—that another launch attempt was made. Уведомление содержит аргументы командной строки последующего экземпляра.The notification includes the subsequent instance's command-line arguments. Последующий экземпляр приложения, которое затем разрывается, перед любой инициализации.The subsequent instance of the application is then closed before any initialization can occur.

Приложение в одном экземпляре запускается и проверяет, является ли первый экземпляр или последующий экземпляр приложения:A single-instance application starts and checks whether it is the first instance or a subsequent instance of the application:

  • Если это первый экземпляр, оно запускается обычным образом.If it is the first instance, it starts as usual.

  • Каждой последующей попытки для запуска приложения, пока первый экземпляр, приводит к кардинально разное поведение.Each subsequent attempt to start the application, while the first instance runs, results in very different behavior. Последующие попытки уведомляет первый экземпляр об аргументах командной строки и немедленно завершает работу.The subsequent attempt notifies the first instance about the command-line arguments, and then immediately exits. Первый экземпляр обрабатывает StartupNextInstance событие, чтобы определить аргументы командной строки последующего экземпляра, а затем продолжает выполняться.The first instance handles the StartupNextInstance event to determine what the subsequent instance's command-line arguments were, and continues to run.

    На этой схеме показано, как последующий экземпляр уведомляет первый экземпляр.This diagram shows how a subsequent instance signals the first instance:

    Схема, показывающая изображение приложения одного экземпляра.

При обработке StartupNextInstance событий, можно управлять поведением одним экземпляром приложения.By handling the StartupNextInstance event, you can control how your single-instance application behaves. Например Microsoft Outlook обычно запускается как приложение одного экземпляра; Если Outlook работает, и попытке запустить Outlook снова, фокуса в исходном экземпляре, но другой экземпляр не открывается.For example, Microsoft Outlook typically runs as a single-instance application; when Outlook is running and you attempt to start Outlook again, focus shifts to the original instance but another instance does not open.

События в модели приложенияEvents in the Application Model

В модели приложения находятся следующие события:The following events are found in the application model:

  • Запуск приложения.Application startup. Приложение создает событие Startup событий при запуске.The application raises the Startup event when it starts. Обрабатывая это событие, можно добавить код, который инициализирует приложение до загрузки главной формы.By handling this event, you can add code that initializes the application before the main form is loaded. Startup Событий также предоставляет возможность отменить выполнение приложения во время этого этапа процесса загрузки, при необходимости.The Startup event also provides for canceling execution of the application during that phase of the startup process, if desired.

    Можно настроить приложение для отображения экрана-заставки, во время выполнения кода запуска приложения.You can configure the application to show a splash screen while the application startup code runs. По умолчанию модель приложения отключает заставку экрана, когда либо /nosplash или -nosplash используется аргумент командной строки.By default, the application model suppresses the splash screen when either the /nosplash or -nosplash command-line argument is used.

  • Приложения с одним процессом.Single-instance applications. StartupNextInstance Событие возникает при запуске последующего экземпляра приложения одного экземпляра.The StartupNextInstance event is raised when a subsequent instance of a single-instance application starts. Событие передает аргументы командной строки последующего экземпляра.The event passes the command-line arguments of the subsequent instance.

  • Необработанные исключения.Unhandled exceptions. Если в приложении возникает необработанное исключение, он выдает UnhandledException событий.If the application encounters an unhandled exception, it raises the UnhandledException event. Обработчик этого события можно проверить исключение и определить, следует ли продолжить выполнение.Your handler for that event can examine the exception and determine whether to continue execution.

    UnhandledException Событие не происходит в некоторых случаях.The UnhandledException event is not raised in some circumstances. Дополнительные сведения см. в разделе UnhandledException.For more information, see UnhandledException.

  • Изменения сетевого подключения.Network-connectivity changes. При изменении доступности сети компьютера, приложение создает NetworkAvailabilityChanged событий.If the computer's network availability changes, the application raises the NetworkAvailabilityChanged event.

    NetworkAvailabilityChanged Событие не происходит в некоторых случаях.The NetworkAvailabilityChanged event is not raised in some circumstances. Дополнительные сведения см. в разделе NetworkAvailabilityChanged.For more information, see NetworkAvailabilityChanged.

  • Завершить работу приложения.Application shut down. Приложение предоставляет Shutdown событие, чтобы сообщить при закрытии.The application provides the Shutdown event to signal when it is about to shut down. В этом событии обработчик, можно гарантировать, что операции в приложении необходимо выполнить, закрытие и сохранение, например, завершены.In that event handler, you can make sure that the operations your application needs to perform—closing and saving, for example—are completed. Чтобы завершить работу при закрытии главной формы, или завершать работу только закрытие всех форм приложения можно настроить.You can configure your application to shut down when the main form closes, or to shut down only when all forms close.

ДоступностьAvailability

По умолчанию модель приложения Visual Basic доступен для проектов Windows Forms.By default, the Visual Basic Application model is available for Windows Forms projects. Настройка приложения для использования разных автоматически запускаемый объект, или запустить код приложения с пользовательским Sub Main, затем, объект или класс может потребоваться предоставить реализацию WindowsFormsApplicationBase класс для использования в модели приложения.If you configure the application to use a different startup object, or start the application code with a custom Sub Main, then that object or class may need to provide an implementation of the WindowsFormsApplicationBase class to use the application model. Сведения об изменении автоматически запускаемый объект, см. в разделе Application Page, Project Designer (Visual Basic).For information about changing the startup object, see Application Page, Project Designer (Visual Basic).

См. такжеSee also