Нет.Вам не нужно проверять monitorContext.IsReplaying
около counter++
.
Эта проверка нужна вам только для операторов, которые вы хотите выполнить только один раз, таких как регистрация (как в вашем коде), обновления состояния внешней системы и т. Д.
Чтобы быть безопасным при воспроизведении, вам просто нужно, чтобы ваш код был детерминированным.Поэтому любой код, который не может быть составлен в Pure Function , должен быть перенесен в их собственные функции деятельности.Все остальное будет делать.
Как указано в документации, любой код, который изменяется во времени (время воспроизведения), например генераторы на основе времени, удаленные данные из внешних API и т. Д., Должен быть в функциях активности.