/// <summary> /// Fill with ocurrences /// </summary> /// <param name="ocurrences">Ocurrences</param> /// <param name="name">Name</param> public void Fill(OcurrenceCollection ocurrences) { Source.BeginLoadData(); Source.Rows.Clear(); foreach (Ocurrence o in ocurrences.GetOrdered()) { Source.Rows.Add(o.Count, o.Value, o); } Source.EndLoadData(); CalculateChart(ocurrences); }
/// <summary> /// Constructor /// </summary> /// <param name="ocurrences">Ocurrences</param> /// <param name="name">Name</param> public UCOcurrence(OcurrenceCollection ocurrences, string name) { InitializeComponent(); Grid.AutoGenerateColumns = false; Text = name; Original = ocurrences; Source = new DataTable(); Source.Columns.Add("Count", typeof(uint)); Source.Columns.Add("Value", typeof(string)); Source.Columns.Add("Tag", typeof(Ocurrence)); Grid.DataSource = Source; Fill(ocurrences); }
/// <summary> /// Calculate ocurrences /// </summary> public void GenerateOcurrences() { foreach (string key in Ocurrences.Keys.ToArray()) { OcurrenceCollection ocur = Ocurrences[key]; // Fill Parallel.ForEach(Instructions, (ins) => { if (ocur.Checker != null && ocur.Checker(ins, out string val)) lock (ocur) ocur.Append(val, ins); }); // Clean if (Ocurrences[key].Count <= 0) Ocurrences.Remove(key); } }