Событийная модель в C#
Формулировка задачи:
Привет! Недавно добрался до изучения событий в C# и в связи с чем возникло некоторое недопонимание, может быть растолкуете. Если брать обычные win приложения, то там все понятно: любой объект в контексте процесса, способен посылать записи/объекты типа "сообщения" в систему, система при этом заносит их в очередь, созданную для процесса приложения и формирует объект "событие" с занесением в журнал событий. Затем в главном потоке крутящаяся процедура-"окна" выдирает из очереди сообщение и обрабатывает его. Реализация же на C# с делегатами демонстрирует, что ни каких сообщений не посылается, а всего лишь в нужный момент вызывается функция-"обработчик", по адресу, который передается при создании объекта делегата. Причем в VStudio проследить это дело как-то не получается или просто не знаю как. Либо они компилятор так замудрили, что уже не понятно, во что на самом деле превращается мой код в JIT-е. По идеи сама framefork работает в контексте системы и следовательно должна иметь возможность регистрировать мои собственные типы сообщений, но получается, что даже сообщение и событие у них что-то единое и не возможно выдернуть стандартные для сообщения L и W параметры. Что же там на самом деле происходит?
Решение задачи: «Событийная модель в C#»
textual
Листинг программы
switch (message) { case WM_ACTIVE: OnActive(...); // запускаем соответствующее событие, на которое навешаны делегаты break; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д