private void UpdateStockPrices(object state)
        {
            lock (_updateStockPricesLock)
            {
                var wasUpdated = false;

                foreach (var entry in Entries)
                {
                    var r = _updateOrNotUpdate.NextDouble();
                    if (r > .1)
                    {
                        continue;
                    }

                    wasUpdated = true;
                    var random        = new Random((int)Math.Floor(entry.Price));
                    var percentChange = random.NextDouble() * _rangePercent;
                    var pos           = random.NextDouble() > .51;
                    var change        = Math.Round(entry.Price * (decimal)percentChange, 2);
                    change = pos ? change : -change;

                    entry.Price += change;
                }

                if (wasUpdated && WasUpdated != null)
                {
                    WasUpdated.Invoke();
                }
            }
        }
Exemple #2
0
 protected override Size ArrangeOverride(Size finalSize)
 {
     GlobalArrangeCount++;
     LocalArrangeCount++;
     WasUpdated?.Invoke();
     return(base.ArrangeOverride(finalSize));
 }
Exemple #3
0
        public CounterGrid2()
        {
            CreationCount++;
            WasUpdated?.Invoke();

            DataContextChanged += On_DataContextChanged;
        }
Exemple #4
0
 protected override Size MeasureOverride(Size availableSize)
 {
     GlobalMeasureCount++;
     LocalMeasureCount++;
     WasUpdated?.Invoke();
     return(base.MeasureOverride(availableSize));
 }
Exemple #5
0
 private void On_DataContextChanged(DependencyObject sender, DataContextChangedEventArgs args)
 {
     if (args.NewValue != null)
     {
         BindCount++;
         WasUpdated?.Invoke();
     }
 }