private void button18_Click(object sender, EventArgs e) { if (openFileDialog1.ShowDialog() == DialogResult.OK) { textBox5.Text = openFileDialog1.FileName; InfaDlyaZapolnenieTablIzCSV infa = new InfaDlyaZapolnenieTablIzCSV(); infa.dataGridView = dataGridView8; infa.linesIzCSV = File.ReadAllLines(openFileDialog1.FileName); progressBar1.Maximum = infa.linesIzCSV.Length; Task.Factory.StartNew(() => { ZapolnenieTablIzCSV(infa); }); //Создание и запуск нового потока } }
public void ZapolnenieTablIzCSV(object a) { InfaDlyaZapolnenieTablIzCSV infa = (InfaDlyaZapolnenieTablIzCSV)a; DataGridView dataGridViewFormat = infa.dataGridView; string[] linesCSV = infa.linesIzCSV; int countRow = linesCSV.Length; trueClass = new bool[countRow]; ocenkaAnomalii = new double[countRow]; for (int k = 0; k < countRow; k++) { string[] row = linesCSV[k].Split(';'); if (row[0] == "1") { trueClass[k] = true; } else { trueClass[k] = false; } ocenkaAnomalii[k] = Convert.ToDouble(row[1]); //Добавление строки в таблицу dataGridViewFormat.Invoke((Action)(() => { dataGridViewFormat.Rows.Add(row); })); label1.Invoke((Action)(() => { label1.Text = "Загружено данных:" + k + "/" + countRow; })); progressBar1.Invoke((Action)(() => { progressBar1.Value = k; })); } dataGridView9.Invoke((Action)(() => { dataGridView9.Rows[0].Cells[1].Value = ocenkaAnomalii.Min(); dataGridView9.Rows[1].Cells[1].Value = ocenkaAnomalii.Max(); dataGridView9.Rows[2].Cells[1].Value = (ocenkaAnomalii.Max() - ocenkaAnomalii.Min()) / 1000; })); }