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


События (Руководство по программированию в C#)

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

События позволяют классу или объекту уведомлять другие классы или объекты о возникновении каких-либо ситуаций. Класс, отправляющий (или вызывающий) событие, называется издателем, а классы, принимающие (или обрабатывающие) событие, называются подписчиками.

В C# в стандартном приложении Windows Forms или веб-приложении пользователь подписывается на события, вызываемые элементами управления, такими как кнопки и поля со списками. Для просмотра событий, публикуемых элементом управления, и выбора некоторых из них для обработки можно воспользоваться средой IDE Visual C#. IDE автоматически добавит пустой метод обработчика событий и код, необходимый для подписки на событие. Дополнительные сведения см. в разделе Практическое руководство. Подписка и отмена подписки на события (Руководство по программированию в C#).

Общие сведения о событиях

События имеют следующие свойства.

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

  • У события может быть несколько подписчиков. Подписчик может обрабатывать несколько событий от нескольких издателей.

  • События, не имеющие подписчиков, никогда не возникают.

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

  • Если событие имеет несколько подписчиков, то при его возникновении происходит синхронный вызов обработчиков событий. Сведения об асинхронном вызове событий см. в разделе Асинхронный вызов синхронных методов.

  • События можно использовать для синхронизации потоков.

  • В библиотеке классов .NET Framework в основе событий лежит делегат EventHandler и базовый класс EventArgs.

Связанные разделы

Дополнительные сведения см. в следующих разделах:

Спецификация языка C#

Дополнительные сведения см. в следующих разделах документа Спецификация языка C#:

  • 1.6.7.4 События

  • 10.2.9.2 Имена членов, зарезервированные для событий

  • 10.8 События

  • 13.2.3 События интерфейса

См. также

Основные понятия

Руководство по программированию в C#

Ссылки

Делегаты (руководство по программированию на C#)

EventHandler

Другие ресурсы

Создание обработчиков событий в Windows Forms

Многопоточное программирование с использованием асинхронной модели, основанной на событиях