public virtual SolverState Init(SolverCommand command) { var state = SolverHelper.Init(new SolverBaseState(), command); state.Statistics.Name = GetType().Name; state.Pool = new SolverPoolByBucket(); state.Evaluator = evaluator; state.Queue = new SolverQueue(); state.Root = state.Evaluator.Init(command.Puzzle, state.Queue); Statistics = new[] { state.Statistics, state.Pool.Statistics, state.Queue.Statistics }; return(state); }
public override SolverState Init(SolverCommand command) { var state = SolverHelper.Init(new MultiThreadedSolverState(), command); state.Command.Parent = Worker.Owner; state.Command.CheckAbort = CheckWorkerAbort; state.Statistics.Name = $"{GetType().Name}:{Worker.Name}"; state.Pool = Worker.Pool; state.Evaluator = new ReverseEvaluator(nodeFactory); state.Queue = Worker.Queue; Statistics = new[] { state.Statistics }; return(state); }