예제 #1
0
        private async void DoStart()
        {
            _cancellationTokenSource = new CancellationTokenSource();
            _isRunning = true;
            CommandManager.InvalidateRequerySuggested();

            await Task.Run(() =>
            {
                _stopwatch.Start();

                for (var i = 0; _isRunning; i++)
                {
                    StarGrid.GetDeltas();
                    StarGrid.UpdateS(StepSizeVm.Value, NoiseLevelVm.Value);

                    if (_cancellationTokenSource.IsCancellationRequested)
                    {
                        _isRunning = false;
                        _stopwatch.Stop();
                        CommandManager.InvalidateRequerySuggested();
                    }

                    if (i % (int)DisplayFrequencySliderVm.Value == 0)
                    {
                        Application.Current.Dispatcher.Invoke
                        (
                            UpdateUi,
                            DispatcherPriority.Background
                        );
                    }
                }
            },
                           cancellationToken : _cancellationTokenSource.Token
                           );
        }
예제 #2
0
        public void UpdateTable()
        {
            StarGrid.DataSource = null;
            StarGrid.ClearSelection();

            Targets = Archive.Stars;

            foreach (Predicate <Star> F in Filters)
            {
                Targets = Targets.Where(S => F(S)).ToList();
            }

            Constants.FillDataGrid(Targets, StarGrid);
        }
예제 #3
0
 protected override void ResetState()
 {
     message = null;
 }
예제 #4
0
        protected override void LoadState()
        {
            var points = new PointCollection(ParsedFileLines(Point.Parse));

            message = points.GetFormedStarGrid(out formationTime);
        }
예제 #5
0
 private void UpdateUi()
 {
     Grid2DVm.UpdateData(StarGrid.CurValuesAsP2Vs());
     OnPropertyChanged("Generation");
     OnPropertyChanged("ElapsedTime");
 }