Событийная модель в C#

Узнай цену своей работы

Формулировка задачи:

Привет! Недавно добрался до изучения событий в C# и в связи с чем возникло некоторое недопонимание, может быть растолкуете. Если брать обычные win приложения, то там все понятно: любой объект в контексте процесса, способен посылать записи/объекты типа "сообщения" в систему, система при этом заносит их в очередь, созданную для процесса приложения и формирует объект "событие" с занесением в журнал событий. Затем в главном потоке крутящаяся процедура-"окна" выдирает из очереди сообщение и обрабатывает его. Реализация же на C# с делегатами демонстрирует, что ни каких сообщений не посылается, а всего лишь в нужный момент вызывается функция-"обработчик", по адресу, который передается при создании объекта делегата. Причем в VStudio проследить это дело как-то не получается или просто не знаю как. Либо они компилятор так замудрили, что уже не понятно, во что на самом деле превращается мой код в JIT-е. По идеи сама framefork работает в контексте системы и следовательно должна иметь возможность регистрировать мои собственные типы сообщений, но получается, что даже сообщение и событие у них что-то единое и не возможно выдернуть стандартные для сообщения L и W параметры. Что же там на самом деле происходит?

Решение задачи: «Событийная модель в C#»

textual
Листинг программы
switch (message)
{
case WM_ACTIVE:
  OnActive(...); // запускаем соответствующее событие, на которое навешаны делегаты
  break;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 4.111 из 5