private async void Correlation() { this.Cursor = Cursors.WaitCursor; selectedAssets = new Asset[Program.form.dataGridView2.Rows.Count]; int j = 0; foreach (DataGridViewRow t in Program.form.dataGridView2.Rows) { Asset a = (Asset)t.Cells[0].Value; selectedAssets[j] = a; j++; } string path = Program.path + "cor\\"; await DownloadTask(selectedAssets, path, Program.form.trackBar_period.Value); try { finalArray = ClassAssistant.ReadData(selectedAssets, path); dataGridView.Columns.Add("colName", "Актив"); for (int i = 0; i < selectedAssets.Length; i++) { dataGridView.Columns.Add(selectedAssets[i].Ticker, selectedAssets[i].Name); dataGridView.Rows.Add(selectedAssets[i].Name); } this.FillTable(finalArray); for (int i = 0; i < dataGridView.Columns.Count; i++) { dataGridView.Columns[i].Width = 60; } this.Cursor = Cursors.Default; } catch (System.IO.IOException ex) { //Form5_cor_Load(sender, e); string[] exception = ex.Message.Split(' '); /* DialogResult dr = MessageBox.Show("Ошибка при считывании файла " + exception[exception.Length - 1] + ". Замените этот актив или попробуйте еще раз.\nПовторить попытку?", * "Ошибка!", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error); * if (dr == System.Windows.Forms.DialogResult.Retry) Correlation(); * else this.Close(); */ count++; if (count == 3) { DialogResult dr = MessageBox.Show("Ошибка при считывании файла " + exception[exception.Length - 1] + ". Замените этот актив.", "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error); count = 0; if (dr == System.Windows.Forms.DialogResult.OK) { this.Close(); } } else { Correlation(); } } catch (Exception ex) { string[] exception = ex.Message.Split(' '); DialogResult dr = MessageBox.Show(ex.Message, "Ошибка!", MessageBoxButtons.RetryCancel, MessageBoxIcon.Error); if (dr == System.Windows.Forms.DialogResult.Retry) { Correlation(); } else { this.Close(); } } }