public void Reset(bool eyeClickerResetOnly)
 {
     CurrentStage             = Stages.Reset;
     this.eyeClickerResetOnly = eyeClickerResetOnly;
     if (eyeClickerResetOnly)
     {
         cmsTrackingSuiteAdapter.ToggleSetup(true);
     }
     clickerFSM.Reset();
     SetEyeImages(true, true);
     xDistanceBetweenEyesSet = false;
     firstUpdate             = true;
     leftEyeBlinkDetector.Restart();
     rightEyeBlinkDetector.Restart();
     try
     {
         workerThread.Abort();
     }
     catch (ThreadStateException)
     {
         workerThread.Resume();
     }
     workerThread.Join();
     waitHandler.Reset();
     updateData = null;
     lock ( workerUpdateDataMutex )
     {
         workerUpdateData = null;
     }
     workerThread          = new Thread(new ThreadStart(workerThreadMain));
     workerThread.Priority = ThreadPriority.Highest;
     workerThread.Start();
 }