void Spot() { var control = new SpotControl(); var vm = new SpotControlViewModel() { IsBusy = true }; control.DataContext = vm; OpenView("2 Matrix Analyse(" + ProcessMode.ToString() + "):" + GetHeader(), control); Task.Factory.StartNew(() => { try { Save(); Dictionary <string, List <Tuple <double, double> > > rl = TargetObject.Get2DCurve(); App.Current.Dispatcher.Invoke(() => { vm.LoadData(rl); }); } catch (Exception ex) { LogSupport.Error(ex); } }).ContinueWith((t) => { vm.IsBusy = false; }); }