Потоковая передача в C# winform для отображения ошибки заставки
Привет ребята ,
я пытаюсь показать заставку, но отображается следующая ошибка:
Cross-thread operation not valid: Control 'cmbEnviroment' accessed from a thread other than the thread it was created on
это мой код для нарезания резьбы :
private void LoadInstitutions() { //Thread.Sleep(3000); // OperationClass oc = new OperationClass(); // oc.loading(); string selectedValue = cmbEnviroment.SelectedItem.ToString().Trim(); ConnectionClass connectionClass = new ConnectionClass(); connectionClass.Connection(selectedValue); DataTable table4 = new DataTable(); string sql4 = "A query to gather data"; try { OleDbDataAdapter da4 = new OleDbDataAdapter(sql4, connectionClass.Connection(selectedValue)); da4.Fill(table4); DataRow dr4 = table4.NewRow(); DataRow dr5 = table4.NewRow(); dr4["hello1"] = ""; table4.Rows.InsertAt(dr4, 0); cmbInstitution.DataSource = table4; cmbInstitution.DisplayMember = "hello1"; cmbInstitution.ValueMember = "hello1"; } catch (Exception ex) { MessageBox.Show(ex.ToString()); } } private async void cmbEnviroment_SelectedIndexChanged(object sender, EventArgs e) { //using (new PleaseWait(this.Location)) //{ ComboBox senderComboBox = (ComboBox)sender; if (senderComboBox.SelectedIndex > 0) { LoadingScreen ls = new LoadingScreen(); ls.TopMost = true; ls.Show(); await Task.Run(() => LoadInstitutions()); ls.Close(); } //} }
Что я уже пробовал:
я пробовал разные методы, чтобы показать заставку, пока я собираю данные из базы данных, но я застрял .