Событие (вычисления)

редактировать

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

Содержание
  • 1 Описание
  • 2 Модель делегирования событий
  • 3 Обработчик событий
  • 4 Уведомление о событиях
  • 5 События, создаваемые пользователем
    • 5.1 События мыши
    • 5.2 События клавиатуры
    • 5.3 События джойстика
    • 5.4 События сенсорного экрана
    • 5.5 События устройства
  • 6 См. Также
  • 7 Ссылки
  • 8 Внешние ссылки
Описание

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

Программа может игнорировать события, и могут быть библиотеки для отправки события нескольким обработчикам, которые могут быть запрограммированы для прослушивания определенного события. Данные, связанные с событием, как минимум, определяют тип события, но могут включать другую информацию, например, когда оно произошло, кто или что вызвало это событие, а также дополнительные данные, предоставленные источником события обработчику о том, как событие должно быть обработано.

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

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

Модель делегирования событий
Модель событий делегирования. clickme- это источник события - кнопка в этом примере - и он содержит список слушателей.

Распространенным вариантом в объектно-ориентированном программировании является делегат модель событий, которая предоставляется некоторыми графическими пользовательскими интерфейсами. Эта модель основана на трех объектах:

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

Кроме того, модель требует, чтобы:

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

C# использует события как специальные делегаты, которые могут запускаться только классом, который их объявляет. Это позволяет улучшить абстракцию , например:

делегат void Notifier (отправитель строки); class Model {публичное событие Notifier notifyViews; public void Change () {... notifyViews ("Модель"); }} class View1 {public View1 (Model m) {m.notifyViews + = new Notifier (this.Update1); } void Update1 (строка отправителя) {Console.WriteLine (отправитель + "был изменен во время обновления"); }} class View2 {public View2 (Model m) {m.notifyViews + = new Notifier (this.Update2); } void Update2 (строка отправителя) {Console.WriteLine (отправитель + "был изменен"); }} class Test {static void Main () {Model model = new Model (); новый View1 (модель); новый View2 (модель); model.Change (); }}
Обработчик событий

В компьютерном программировании обработчик событий - это подпрограмма callback , которая обрабатывает входные данные, полученные в программе (называемой прослушивателем в Java и JavaScript ). Каждое событие - это часть информации уровня приложения из базовой структуры, обычно инструментария GUI. К событиям графического интерфейса относятся нажатия клавиши, движение мыши, выбор действий и истечение таймеров. На более низком уровне события могут представлять доступность новых данных для чтения файла или сетевого потока. Обработчики событий являются центральной концепцией в программировании, управляемом событиями.

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

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

Уведомление о событии

Уведомление о событии - это термин, используемый в сочетании с коммуникациями программным обеспечением для связывания приложений, которые генерируют небольшие сообщения («события») приложениям, которые отслеживают связанные условия и могут предпринимать действия, запускаемые событиями.

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

Иногда он используется как синоним для публикации-подписки, термина, который относится к одному классу продуктов, поддерживающих уведомление о событиях в сетевых настройках. Модель virtual synchrony иногда используется для обеспечения систем уведомления о событиях и систем публикации-подписки более надежными гарантиями отказоустойчивости и согласованности.

События, создаваемые пользователем

Существует большое количество ситуаций или событий, которые программа или система могут генерировать или реагировать на них. Некоторые общие события, генерируемые пользователем, включают:

События мыши

A указывающее устройство может генерировать ряд программно распознаваемых жестов указывающего устройства. Мышь может генерировать ряд событий мыши, таких как движение мыши (включая направление движения и расстояние), левую / правую кнопку мыши вверх / вниз и движение колеса мыши или комбинацию этих жестов.

События клавиатуры

Нажатие клавиши на клавиатуре или комбинации клавиш генерирует событие клавиатуры, позволяя программе, запущенной в данный момент, реагировать на введенные данные, например, какую клавишу / клавиши нажимал пользователь..

События джойстика

При перемещении джойстика генерируется аналоговый сигнал XY. У них часто есть несколько кнопок для запуска событий. В некоторых геймпадах для популярных игровых приставок используются джойстики.

События сенсорного экрана

События, генерируемые с помощью сенсорного экрана, обычно называются событиями касания или жестами.

событиями устройства

События устройства включают действия устройства или по отношению к нему, такие как встряхивание, наклон, вращение, перемещение и т. Д.

См. Также
Ссылки
Внешние ссылки
Последняя правка сделана 2021-05-19 08:35:30
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте