public void StopThread()
 {
     if (!IsThreadRunning()) return;
     if (window.Dispatcher.CheckAccess())
     {
         window.Close();
     }
     else
     {
         //FIXME It will always close and terminate thread?
         window.Dispatcher.Invoke(DispatcherPriority.Normal, new ThreadStart(window.Close));                
         window = null;
         thread = null;
     }
 }
 public void StartWindow()
 {
     window = new KinectControlWindow(mode, Executor);
     window.Show();
     System.Windows.Threading.Dispatcher.Run();
 }