У меня есть механизм сценариев, который выполняет несколько одновременных сценариев в качестве асинхронных задач. Некоторые сценарии, очень редко, будут делать определенную вещь, о которой должен знать механизм сценариев, когда сценарий завершается. Из-за сложности сценариев и того, насколько глубокой может быть эта операция вызова, невозможно поместить это уведомление в тип возврата Задачи
Казалось бы, это хорошее место для использования AsyncLocal<bool>
, и чтобы код, выполняющий эту операцию, вызывал механизм сценариев и устанавливал для него значение true
, но когда я проверял значение AsyncLocal
после await
в скрипте всегда равно false
, даже когда я убедился, что код, который устанавливает его в true
, действительно работал.
Как я могу понять, что здесь происходит и как это исправить?