Пример #1
0
        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;
        }
Пример #2
0
 public void EnqueueAsync(Func <Task> actionEventAsync)
 {
     EventQueueAsync.Enqueue(actionEventAsync);
 }