private void descrBoundsBtn_Click(object sender, RoutedEventArgs e) { if (task.data == null) { Log.Text = "Данные не загружены"; return; } if (yBoundsData.Count == 0) { Log.Text = "Не выбран стандарт на марку"; return; } modelDescret = new DescrModel(task.x, task.y, Convert.ToDouble(alphaTextBox.Text), Convert.ToDouble(betaTextBox.Text)); modelDescret.SetBounds(xBoundsData, yBoundsData); //берем границы из табличек task.CorrectBoundsY(modelDescret); //если верхняя не определена - берем максимум по выборке //List<string[]> results; DescretOptTask descrOptimizeBackground = new DescretOptTask(task, modelDescret, Convert.ToInt32(numIntervalsTextBox.Text), Convert.ToInt32(degreeTextBox.Text), Convert.ToInt32(shiftTextBox.Text), Convert.ToDouble(epsTextBox.Text)); backgroundWorker.RunWorkerAsync(descrOptimizeBackground); Log.Text = "Начато построение дискретной модели . . . "; //передаем ссыль на модель, в функции все меняется getBoundsBtn.IsEnabled = false; descrBoundsBtn.IsEnabled = false; }
private void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e) { DescretOptTask input = (DescretOptTask)e.Argument; double res = input.StartOptimize(backgroundWorker); e.Result = res; }