Существует субъект фабрики услуг со следующим определением, который зарегистрирован, а затем незарегистрирован путем реализации интерфейса IRemindable
.У этого актера тоже есть статический словарь.
[StatePersistence(StatePersistence.None)]
[ActorService(Name = "ProcessorActorService")]
public class ProcessorActor : BaseActor, IRemindable
{
private static Dictionary<object,object> _myDictionary;
}
Насколько я понимаю, сервисная фабрика создает несколько экземпляров одного и того же актера, если указатель каждого актора отличается во время создания экземпляра.Когда создается каждый экземпляр субъекта, действие напоминания добавляет объект в словарь для последующей обработки.
Мое ожидание / понимание было таким, что область действия словаря находится в том же самом экземпляре, но когда экземпляр следующего актера оживает, я понимаю, что у _myDictionary
есть узлы, которые были добавлены в другом акторе!Таким образом, создается впечатление, что словарь является общим для всех живых экземпляров одного и того же типа актера!Это правильное понимание или тот же уже созданный актер снова вызывается ?!
Поскольку актер реализует IRemindable
Я ожидаю, что GC удалит актера из кластера после его отмены регистрации, но, похоже, этого не происходит.Возможно ли, что статический словарь заставит экземпляр актера застрять?