Передача/передача событий.NET

В PHP 7.1 x64 на окнах с apache 2.4 x64:

extension_dir = "ext" не работает для меня,

абсолютный путь: extension_dir = " C: \ DEV \ PHP71 \ ext \ "работал хорошо

7
задан marijne 1 June 2009 в 14:23
поделиться

3 ответа

Вы можете использовать события добавления / удаления аксессоров , чтобы события, связанные с внешним событием, «перенаправлялись» внутреннему слушателю

public event EventHandler<MessageReceivedEventArgs> MessageReceived {
   add { this.listener.MessageRecieved += value; }
   remove { this.listener.MessageRecieved -= value; }
}

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

22
ответ дан 6 December 2019 в 07:28
поделиться

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

Обратите внимание, что этот дизайн имеет проблему как есть. Вы указываете, что ваш слушатель вызывает событие в собственном потоке. По умолчанию обработчики будут вызываться в потоке, который вызвал событие (в вашем случае, поток слушателя). У вас есть несколько вариантов.

  • Если вам все равно, что поток слушателя выполняет обратные вызовы. Просто вызовите событие как есть (но ваш поток слушателя может быть заблокирован, если обработчику события требуется время для выполнения, или просто умереть, если обработчик события выдает необработанное исключение)
  • Если вы хотите, чтобы обработчики выполнялись в потоках, отличных от потока слушателя thread, но неважно, в каких потоках, пока его нет в слушателе: (но я бы не стал использовать асинхронные вызовы для делегатов, а вместо этого напрямую полагался бы на ThreadPool для вызова делегатов).

1
ответ дан 6 December 2019 в 07:28
поделиться

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

1
ответ дан 6 December 2019 в 07:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: