private void UpdateUi() { GridValsVm.UpdateData(Star3Grid.CurValuesAsP2Vs()); AbsDelta = A2dUt.flattenRowMajor(Star3Grid.Stars).Sum(st => st.AbsDelta); OnPropertyChanged("Generation"); OnPropertyChanged("ElapsedTime"); }
private async void DoStart() { _cancellationTokenSource = new CancellationTokenSource(); _isRunning = true; CommandManager.InvalidateRequerySuggested(); await Task.Run(() => { _stopwatch.Start(); for (var i = 0; _isRunning; i++) { Star3Grid.GetDeltas(); Star3Grid.Update( step: StepSizeVm.Value, noise: NoiseLevelVm.Value, ffCpl: FixedFieldCplVm.Value); if (_cancellationTokenSource.IsCancellationRequested) { _isRunning = false; _stopwatch.Stop(); CommandManager.InvalidateRequerySuggested(); } if (i % (int)DisplayFrequencySliderVm.Value == 0) { Application.Current.Dispatcher.Invoke ( UpdateUi, DispatcherPriority.Background ); } } }, _cancellationTokenSource.Token ); }