private void InitializeNewContainerContext(ILifetimeScope container) { if (container == null) { throw new ArgumentNullException(nameof(container)); } var gameInitializables = container.Resolve <IEnumerable <IGameInitializable> >(); var gameStartables = container.Resolve <IEnumerable <IGameStartable> >(); CurrentGameTickables = container.Resolve <IEnumerable <IGameTickable> >(); CurrentGameFixedTickables = container.Resolve <IEnumerable <IGameFixedTickable> >(); EventQueueAsync.Enqueue(async() => { foreach (var initializable in gameInitializables) { await initializable.OnGameInitialized(); } foreach (var startable in gameStartables) { await startable.OnGameStart(); } }); LifetimeDependencyScope = container; }
public void EnqueueAsync(Func <Task> actionEventAsync) { EventQueueAsync.Enqueue(actionEventAsync); }