protected override bool OnUnInitialize() { base.OnUnInitialize(); lock (this) { if (_expert != null) { _expert.PersistenceDataUpdateEvent -= new Expert.ExpertUpdateDelegate(_expert_PersistenceDataUpdateEvent); _expert.UnInitialize(); } } foreach (PlatformExpertSession session in SessionsArray) { session.UnInitialize(); } // [??] No need to change operational state, since it is derived from expert, and we uninitialized it. ChangeOperationalState(OperationalStateEnum.NotOperational); return(true); }