stringtranslate.com

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

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

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

Описание

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

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

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

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

Пользовательские события

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

События мыши

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

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

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

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

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

Сенсорные события

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

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

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

Модель делегирования событий

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

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

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

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

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

Обработчик события

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

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

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

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

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

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

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

Смотрите также

Рекомендации

  1. ^ ab События мыши и клавиатуры в Windows Forms. Майкрософт. Проверено 12 февраля 2008 г.
  2. ^ Мессенбёк, Ханспетер (25 марта 2002 г.). «Расширенный C#: переменное количество параметров» (PDF) . Институт системного программного обеспечения, Университет Иоганна Кеплера в Линце, Факультет информатики. п. 26 . Проверено 5 августа 2011 г.
  3. ^ «EventTarget.addEventListener () — Веб-API | MDN» . http://developer.mozilla.org .

Внешние ссылки