Re[8]: Образцово-показательный интерфейс для EventBus
От: Shmj Ниоткуда  
Дата: 24.11.21 12:48
Оценка:
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>Я ничего в твоем примере не понял, там какая то каша. Никто в коде подписки обработчик события руками не вызывает. Схематически оно выглядит примерно так:

НС>
НС>async static void SubscribeAsync(
НС>  Func<string, CancellationToken, Task> eventHandler,
НС>  CancellationToken cancellation = default)
НС>{
НС>  await nativeClient.SubscribeAsync(
НС>        (nativeParams, canc) => eventHandler(GetModelParams(nativeParams), canc),
НС>        cancellation);
НС>}
НС>


В вашем вызове вы передаете canc. Где его берет nativeClient? Видимо использует тот же cancellation, который вы ему передаете, ведь так? Получается у вас 1 единственный cancellation по сути. Так?

Почему тогда вы его не используете для отмены подписки? В nativeClient.SubscribeAsync он что отменяет?

По сути вы переписали nativeClient таким же, как ваш метод. А что если nativeClient работает по классической схеме событий — давайте такой случай рассмотрим для наглядности — там же вручную придется все делать. К примеру клиент для RabbitMQ так и работает — на событиях.
Отредактировано 24.11.2021 13:02 Shmj . Предыдущая версия . Еще …
Отредактировано 24.11.2021 13:00 Shmj . Предыдущая версия .
Отредактировано 24.11.2021 12:58 Shmj . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.