protected override void OnStatusChanged(GameModuleStatus old) { switch (Status) { case GameModuleStatus.Dead: foreach (var item in dependencyWatchers) { item.EnableRaisingEvents = false; } Interlocked.Exchange(ref taskThreadClosed, 1); taskThread.Join(); taskQueue = null; break; case GameModuleStatus.Alive: case GameModuleStatus.Active: if (taskThread.IsAlive == false) { taskQueue = new ConcurrentQueue <Action>(); Interlocked.Exchange(ref taskThreadClosed, 0); taskThread.Start(); } foreach (var item in dependencyWatchers) { item.EnableRaisingEvents = true; } break; } }
protected virtual void OnStatusChanged(GameModuleStatus old) { }