private fsCalculatorUpdateHandler( fsCalculatorUpdateHandler parentHandler, double startValue, double endValue) { m_parentHandler = parentHandler; m_startValue = startValue; m_endValue = endValue; }
private void CalculateInThread() { var uh = new fsCalculatorUpdateHandler(fsLabeledProgressBar1); errorMessageTextBox.Text = ""; var calcsList = new List <KeyValuePair <fsCalculator, Dictionary <fsParameterIdentifier, fsCalculatorParameter> > >(); foreach (var dataContainer in dataContainers) { foreach (var calculator in dataContainer.m_calculatorList) { calcsList.Add(new KeyValuePair <fsCalculator, Dictionary <fsParameterIdentifier, fsCalculatorParameter> >( calculator, dataContainer.m_parameterValue)); } } var progressSplitters = new double[calcsList.Count + 1]; int totalAmount = calcsList.Sum(t => t.Key.GetToCalculateAmount()); int currentAmount = 0; for (int i = 0; i < calcsList.Count; ++i) { progressSplitters[i] = (double)currentAmount / totalAmount; currentAmount += calcsList[i].Key.GetToCalculateAmount(); } progressSplitters[calcsList.Count] = 1; for (int i = 0; i < calcsList.Count; ++i) { var calc = calcsList[i].Key; calc.SetUpdateHandler(uh.CreateSubHandler( progressSplitters[i], progressSplitters[i + 1])); ApplyCalculator(calc, calcsList[i].Value); } foreach (var dataContainer in dataContainers) { foreach (var p in dataContainer.m_parameterValue.Keys) { var value = dataContainer.m_parameterValue[p]; if (value.IsInput == false) { dataContainer.m_parameterCell[p].Value = value.ValueToStringWithCurrentUnits(); } } } }
public void SetUpdateHandler(fsCalculatorUpdateHandler updateHandler) { m_updateHandler = updateHandler; }