public void Launch <U>(SimpleCommandInitializer <U> initializer = null) where U : Command, new() { var executor = pool.Allocate <SimpleCommandChainExecutor <U> >(); activeExecutors.Add(executor); executor.Start(this, pool, initializer); }
internal void Start(CommandRelay manager, ObjectPool pool, SimpleCommandInitializer <T> initializer = null) { this.manager = manager; this.pool = pool; command = pool.Allocate <T>(); if (null != initializer) { initializer(command); } command.Start(this); }