Сообщение Re[6]: Образцово-показательный интерфейс для EventBus от 24.11.2021 10:48
Изменено 24.11.2021 11:00 Shmj
Re[6]: Образцово-показательный интерфейс для EventBus
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>В смиысле где? Нормально спроектированное асинк API его обычно содержит в параметрах всех методов.
Пояснил на примере, там где !!!! — вопрос:
НС>В смиысле где? Нормально спроектированное асинк API его обычно содержит в параметрах всех методов.
Пояснил на примере, там где !!!! — вопрос:
static void SubscribeAsync(Func<string, CancellationToken, Task> eventHandler,
CancellationToken cancellation = default)
{
// Тут словили событие (для упрощения string)
string eventMessage = "event1";
// Теперь вызываете eventHandler не дожидаясь выполнения (чтобы продолжать отлавливать новые события).
_ = Task.Factory.StartNew(() =>
{
CancellationToken cancellation2 = CancellationToken.None;
// !!!! А вот при вызове eventHandler нужен этот другой cancellation2, который отменит eventHandler, а не процесс подписки!
eventHandler(eventMessage, cancellation2);
});
}
Re[6]: Образцово-показательный интерфейс для EventBus
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>В смиысле где? Нормально спроектированное асинк API его обычно содержит в параметрах всех методов.
Пояснил на примере, там где !!!! — вопрос:
НС>В смиысле где? Нормально спроектированное асинк API его обычно содержит в параметрах всех методов.
Пояснил на примере, там где !!!! — вопрос:
static void SubscribeAsync(Func<string, CancellationToken, Task> eventHandler,
CancellationToken cancellation = default)
{
// Тут словили событие (для упрощения string)
string eventMessage = "event1";
// Теперь вызываете eventHandler не дожидаясь выполнения (чтобы продолжать отлавливать новые события).
_ = Task.Factory.StartNew(() =>
{
CancellationToken cancellation2 = CancellationToken.None;
// !!!! А вот при вызове eventHandler нужен этот другой cancellation2, который отменит eventHandler, а не процесс подписки!
await eventHandler(eventMessage, cancellation2);
// тут подтверждаем обработку.
});
}