//////////////////////////////////////////////////////////////////////////////////////////////////// /// <summary> Handles state changes in the extractor controller. </summary> /// /// <remarks> This can be called from other threads. </remarks> /// /// <param name="sender"> Source of the event. </param> /// <param name="e"> The ModelExtractorStateChangeArgs to process. </param> private void ControllerStateChanged(object sender, ModelExtractorStateChangeArgs e) { if (InvokeRequired) { BeginInvoke(new Action(() => SetState(e.State))); } else { SetState(e.State); } }