Импорт данных в интерфейс замораживания datagridview - PullRequest
0 голосов
/ 25 марта 2019

Я пытаюсь импортировать данные текстового файла в представление сетки данных, но представление сетки замораживает пользовательский интерфейс.

Я пытался использовать backgroundworker, но его зависание.Размер файла даже не 1 МБ.

public async Task ReadDataToDataGridView() {
 await Task.Yield();
 Invoke(new Action(async delegate() {
  await Task.Yield();
  int row = 0;
  OpenFileDialog openFile = new OpenFileDialog();
  openFile.DefaultExt = "txt";
  openFile.Filter = "Text Files (*txt)|*ini|All files (*.*)|*.*";
  openFile.AddExtension = true;
  openFile.ShowDialog();
  string path = openFile.FileName;
  using(FileStream fs = File.Open(path, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
  using(BufferedStream bs = new BufferedStream(fs))
  using(StreamReader sr = new StreamReader(bs)) {
   string line;
   while ((line = sr.ReadLine()) != null) {
    try {
     // Thread.Sleep(1000);
     dataGridView1.Invoke(new Action(delegate() {
      dataGridView1.Rows.Add();
      dataGridView1.Rows[row++].Cells[0].Value = line.Split(':')[0];
      dataGridView1.Refresh();
      //dataGridView1.Rows[row].Cells[1].Value = line.Split(':')[1];
     }));
    } catch {

    }
   }
  }
 }));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...