我使用dataGridView創建了一個Windows Forms。我還有一個長時間運行的SQL查詢,我正在運行一個BackgroundWorker線程來填充靜態數據表。用C#Windows窗體中的SQL查詢結果填充dataGridView
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;
}
這工作得很好。當我去運行查詢時,由於結果在後臺生成,UI保持響應...但是,當需要在我的dataGridView中顯示結果時,如果窗口是一大組數據,窗口會凍結。如果我讓它坐下一段時間,最終它會結束。在我的RunWorkerCompleted回調函數中,我打電話 dataGridView1.DataSource = results;
(結果是我的DataSet),這是需要很長時間的部分。
有沒有什麼辦法可以預先綁定dataGridView,或綁定它在backgroundworker?