У меня есть Windows Forms , созданный с dataGridView на нем.У меня также есть длительный SQL-запрос, который я выполняю в потоке BackgroundWorker для заполнения статической таблицы данных.
private void RunQuery_DoWork(object sender, DoWorkEventArgs e)
{
OdbcDataAdapter adapter = new OdbcDataAdapter(longRunningSQLQuery, datasourcename);
adapter.Fill(results);
}
private void RunQuery_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
dataGridView1.DataSource = results;
}
Это прекрасно работает.Когда я запускаю запрос, пользовательский интерфейс остается отзывчивым, так как результаты генерируются в фоновом режиме ... Однако, когда приходит время отображать результаты в моем dataGridView, окно останавливается, если это большой набор данных.Если я позволю этому сидеть некоторое время, в конечном счете это заканчивается.В моей функции обратного вызова RunWorkerCompleted я вызываю dataGridView1.DataSource = results;
(результат - мой DataSet), и эта часть занимает много времени.
Есть ли способ предварительно связать dataGridView или связать егов фоновом режиме?