Jump to content

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

(Перенаправлено из обработчиков событий )

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

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

Описание

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

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

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

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

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

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

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

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

События мыши

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

delegate void Notifier (string sender);

class Model
{
    public event Notifier notifyViews;
    public void Change() { ... notifyViews("Model"); }
}

class View1
{
    public View1(Model model)
    {
        model.notifyViews += new Notifier(this.Update1);
    }

    void Update1(string sender)
    {
        Console.WriteLine($"{sender} was changed during update"); 
    }
}

class View2
{
    public View2(Model model)
    {
        model.notifyViews += new Notifier(this.Update2); 
    }

    void Update2(string sender)
    {
        Console.WriteLine($"{sender} was changed"); 
    }
}

class Test
{
    static void Main()
    {
        Model model = new Model();

        new View1(model);
        new View2(model);
        model.Change();
    }
}

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

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

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

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

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

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

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

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

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

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

См. также

[ редактировать ]
  1. ^ Jump up to: а б События мыши и клавиатуры в Windows Forms . Майкрософт. Проверено 12 февраля 2008 г.
  2. ^ Мессенбёк, Ханспетер (25 марта 2002 г.). «Расширенный C#: переменное количество параметров» (PDF) . Институт системного программного обеспечения, Университет Иоганна Кеплера, Линц, факультет компьютерных наук. п. 26 . Проверено 5 августа 2011 г.
  3. ^ «EventTarget.addEventListener() — Веб-API | MDN» . http://developer.mozilla.org . 11 марта 2024 г.
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 06a751f5c59cf71eff89f32a122e1219__1716456480
URL1:https://arc.ask3.ru/arc/aa/06/19/06a751f5c59cf71eff89f32a122e1219.html
Заголовок, (Title) документа по адресу, URL1:
Event (computing) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)