public void Start(KeyboardEPAlgorithm algorithm)
        {
            Algorithm = algorithm;
            ThreadStart work = () =>
            {
                while (State == MainControl.States.Running)
                {
                    if (mainControl.UntilBetter(Algorithm))
                        continue;

                    Invoke(new Action(() => { mainControl.State = MainControl.States.Stopped; }));
                    break;
                }
            };
            State = MainControl.States.Running;
            workingThread = new Thread(work);
            workingThread.Start();
        }
 void Stop()
 {
     State = MainControl.States.Stopped;
     reduceWorker.Stop();
 }
 void Stop()
 {
     State = MainControl.States.Stopped;
     workingThread.Join(TIME_OUT);
 }
 public void Start()
 {
     State = MainControl.States.RunningParallel;
     reduceWorker = new WorkerThread(parallelRunCount, mainControl);
 }