Информация об изменениях

Сообщение Re[2]: Образцово-показательный интерфейс для EventBus от 23.11.2021 19:58

Изменено 23.11.2021 21:01 Shmj

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

НС>
НС>    // IMPORTANT: dispose the returned result to stop the subscription.
НС>    // cancellation WILL NOT cancel the subscription after subscribe completion.
НС>    // IMPORTANT: use parameters.SubscriptionFailedCallback to handle non-recoverable subscription failures.
НС>


Вот, кстати, этот момент у вас наиболее неочевидный.

Вы передаете CancellationToken, он умеет отменять как сам процесс подписки так и, очевидно, выполнение обработчика (который тоже принимает CancellationToken). Так почему же не использовать его и для отмены подписки?
Re[2]: Образцово-показательный интерфейс для EventBus
Здравствуйте, Ночной Смотрящий, Вы писали:

НС>
НС>    // IMPORTANT: dispose the returned result to stop the subscription.
НС>    // cancellation WILL NOT cancel the subscription after subscribe completion.
НС>    // IMPORTANT: use parameters.SubscriptionFailedCallback to handle non-recoverable subscription failures.
НС>


Вот, кстати, этот момент у вас наиболее неочевидный.

Вы передаете CancellationToken, он умеет отменять как сам процесс подписки так и, очевидно, выполнение обработчика (который тоже принимает CancellationToken). Так почему же не использовать его и для отмены подписки?

И еще вопрос. Вы внутри метода SubscribeAsync, очевидно, вызываете подтверждение обработки события. Так? У меня это отдельный метод.

Так вот вопрос — у вас для каждого нового события создается новая задача или поток? И обработку следующего вы начинаете только после того, как закончили с предыдущим? Или же обрабатываете параллельно? У это можно выбрать.