Changeset 2498


Ignore:
Timestamp:
Jan 27, 2011, 10:08:03 AM (10 years ago)
Author:
Sven Rech
Message:

hopefully fixes #194

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/CrypPlugins/KeySearcher/Presentation/Controls/StatisticsPresentation.xaml.cs

    r2393 r2498  
    4242            set
    4343            {
    44                 statistics = value;
    45                 Dispatcher.Invoke(DispatcherPriority.Normal, (SendOrPostCallback)delegate
     44                lock (this)
     45                {
     46                    statistics = value;
     47                }
     48                if (statistics != null)
     49                    Dispatcher.Invoke(DispatcherPriority.Normal, (SendOrPostCallback)delegate
    4650                                               {
    47                                                    var orderedstats = statistics.OrderByDescending((x) => x.Value.Sum((z) => z.Value.Count));
    48                                                    statisticsTree.DataContext = orderedstats;
    49                                                    statisticsTree.Items.Refresh();
    50                                                 }, null);
     51                                                   if (statistics != null)
     52                                                   {
     53                                                       var orderedstats = statistics.OrderByDescending((x) => x.Value.Sum((z) => z.Value.Count));
     54                                                       statisticsTree.DataContext = orderedstats;
     55                                                       statisticsTree.Items.Refresh();
     56                                                   }
     57                                               }, null);
    5158
    5259            }
     
    5865            get { return machineHierarchy; }
    5966            set
    60             {
    61                 machineHierarchy = value;
     67            {
     68                lock (this)
     69                {
     70                    machineHierarchy = value;
     71                }
    6272                Dispatcher.Invoke(DispatcherPriority.Normal, (SendOrPostCallback)delegate
    6373                                                {
    64                                                     //var orderedstats = machineHierarchy.OrderByDescending((x) => x.Value.Sum);
    6574                                                    machineTree.DataContext = machineHierarchy;
    6675                                                    machineTree.Items.Refresh();
     
    103112        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    104113        {
    105             if (StatisticsPresentation != null)
    106             {
    107                 double allCount = (StatisticsPresentation.Statistics).Sum(i => i.Value.Sum(j => j.Value.Count));
    108                 double vCount = ((Dictionary<long, Information>)value).Sum(i => i.Value.Count);
    109                 return vCount / allCount;
     114            if (StatisticsPresentation != null && StatisticsPresentation.Statistics != null)
     115            {
     116                lock (StatisticsPresentation)
     117                {
     118                    double allCount = (StatisticsPresentation.Statistics).Sum(i => i.Value.Sum(j => j.Value.Count));
     119                    double vCount = ((Dictionary<long, Information>) value).Sum(i => i.Value.Count);
     120                    return vCount/allCount;
     121                }
    110122            }
    111123            else
     
    128140        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    129141        {
    130             if (StatisticsPresentation != null)
    131             {
    132                 double allCount = (StatisticsPresentation.MachineHierarchy).Sum(i => i.Value.Sum);
    133                 double vCount = (int)value;
    134                 return vCount / allCount;
     142            if (StatisticsPresentation != null && StatisticsPresentation.MachineHierarchy != null)
     143            {
     144                lock (StatisticsPresentation)
     145                {
     146                    double allCount = (StatisticsPresentation.MachineHierarchy).Sum(i => i.Value.Sum);
     147                    double vCount = (int) value;
     148                    return vCount/allCount;
     149                }
    135150            }
    136151            else
     
    153168        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    154169        {
    155             if (StatisticsPresentation != null)
    156             {
    157                 string key = (string)value;
    158                 var data = (StatisticsPresentation.Statistics)[key];
    159                 return data.Sum(i => i.Value.Count);
     170            if (StatisticsPresentation != null && StatisticsPresentation.Statistics != null)
     171            {
     172                lock (StatisticsPresentation)
     173                {
     174                    string key = (string) value;
     175                    var data = (StatisticsPresentation.Statistics)[key];
     176                    return data.Sum(i => i.Value.Count);
     177                }
    160178            }
    161179            else
     
    210228        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    211229        {
    212             if (StatisticsPresentation != null)
    213             {
    214                 double allCount = (StatisticsPresentation.Statistics).Sum(i => i.Value.Sum(j => j.Value.Count));
    215                 return (int)value / allCount;
     230            if (StatisticsPresentation != null && StatisticsPresentation.Statistics != null)
     231            {
     232                lock (StatisticsPresentation)
     233                {
     234                    double allCount = (StatisticsPresentation.Statistics).Sum(i => i.Value.Sum(j => j.Value.Count));
     235                    return (int) value/allCount;
     236                }
    216237            }
    217238            else
Note: See TracChangeset for help on using the changeset viewer.