private void computeData(DataGridView grid, Dictionary <string, DataGridViewRow> dataPool, string input, double servCost, double hostCost, string time) { if (_form.infoGrid.InvokeRequired) { AddRowCallback d = new AddRowCallback(computeData); _form.Invoke(d, new object[] { grid, dataPool, input, servCost, hostCost, time }); } else { DataGridViewRow row; if (dataPool.ContainsKey(input)) { row = dataPool[input]; } else { row = grid.Rows[grid.Rows.Add(new object[] { input, (double)0.0, hostCost, hostCost != 0.0?time:"", (double)0.0, servCost, time, (double)0.0 })]; dataPool.Add(input, row); } double count = (double)row.Cells[7].Value; double newCount = count + 1; double hostAvg = (double)row.Cells[1].Value; double newHostAvg = ((count / (newCount)) * hostAvg) + (hostCost / (newCount)); double hostMaxCost = (double)row.Cells[2].Value; string hostMaxCostTime = (string)row.Cells[3].Value; double servAvg = (double)row.Cells[4].Value; double newServAvg = ((count / (newCount)) * servAvg) + (servCost / (newCount)); double servMaxCost = (double)row.Cells[5].Value; string servMaxCostTime = (string)row.Cells[6].Value; if (hostCost > hostMaxCost) { hostMaxCost = hostCost; hostMaxCostTime = time; } if (servCost > servMaxCost) { servMaxCost = servCost; servMaxCostTime = time; } row.SetValues(new object[] { input, newHostAvg, hostMaxCost, hostMaxCostTime, newServAvg, servMaxCost, servMaxCostTime, newCount }); } }
private void computeData(DataGridView grid, Dictionary<string, DataGridViewRow> dataPool, string input, double servCost, double hostCost, string time) { if (_form.infoGrid.InvokeRequired) { AddRowCallback d = new AddRowCallback(computeData); _form.Invoke(d, new object[] { grid, dataPool, input, servCost, hostCost,time }); } else { DataGridViewRow row; if (dataPool.ContainsKey(input)) { row = dataPool[input]; } else { row = grid.Rows[grid.Rows.Add(new object[] { input, (double)0.0, hostCost, hostCost != 0.0?time:"", (double)0.0, servCost, time, (double)0.0 })]; dataPool.Add(input, row); } double count = (double)row.Cells[7].Value; double newCount = count + 1; double hostAvg = (double)row.Cells[1].Value; double newHostAvg = ((count / (newCount)) * hostAvg) + (hostCost / (newCount)); double hostMaxCost = (double)row.Cells[2].Value; string hostMaxCostTime = (string)row.Cells[3].Value; double servAvg = (double)row.Cells[4].Value; double newServAvg = ((count / (newCount)) * servAvg) + (servCost / (newCount)); double servMaxCost = (double)row.Cells[5].Value; string servMaxCostTime = (string)row.Cells[6].Value; if (hostCost > hostMaxCost) { hostMaxCost = hostCost; hostMaxCostTime = time; } if (servCost > servMaxCost) { servMaxCost = servCost; servMaxCostTime = time; } row.SetValues(new object[] { input, newHostAvg, hostMaxCost, hostMaxCostTime, newServAvg, servMaxCost, servMaxCostTime, newCount }); } }