Worker thread og cross thread calls
Hej,Mit program skal søge i en database, og derefter opdatere et DataGridView med en DataTable som source. For at GUI'en ikke skal "hænge" imens søgningen sker, virker det mest naturligt med en "workerthread" - jeg har bare nada forstand på threading hehe :-)
Anyway, jeg har dette:
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
SqlDataReader dataReaderSearch = FunctionSqlDataReader(workerConn, workerSql);
if (dataReaderSearch != null && dataReaderSearch.HasRows)
{
DataTable myTable = new DataTable();
myTable.Load(dataReaderSearch);
dataGridView1.DataSource = myTable;
dataGridView1.Update();
}
dataReaderSearch.Close();
}
..som jeg kalder med: backgroundWorker1.RunWorkerAsync();
Det compiler som sådan fint, men programmet kaster en exception ved "dataGridView1.DataSource = myTable;" med beskeden:
{"Cross-thread operation not valid: Control 'dataGridView1' accessed from a thread other than the thread it was created on."}
Nogen ideer til en løsning? :-)