Задержанная контрольная точка в ProcessEventsAsync - PullRequest
0 голосов
/ 04 июля 2019

Интерфейс IEventProcessor EventHub имеет следующий метод:

Task ProcessEventsAsync(PartitionContext context, IEnumerable<EventData> messages)

Я хочу постагрегировать сообщения, полученные от концентратора событий в TPL.DataFlow, поскольку исходные пакеты слишком малы.При этом мне нужно было бы проверять события где-нибудь в конвейере потока данных, и это, очевидно, происходит спустя долгое время после возврата метода.

В.1: Могу ли я использовать аргумент context после возврата ProcessEventsAsync?Насколько это безопасно?
Q.2: Есть ли лучший способ делать то, что я хочу?

1 Ответ

0 голосов
/ 08 июля 2019

После исследования исходного кода обработчика событий я пришел к выводу, что это не очень хорошая идея. PartitionContext является изменяемым и не кажется поточно-ориентированным, поэтому одновременный вызов его методов может повредить его состояние.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...