public partial class KonktatSuchen : Form { private delegate void MethodDelegate(string p_select); public KonktatSuchen() { InitializeComponent(); } private void SetdataGridView(string p_select) { m_dataGridView1.DataSource = Settings.m_Db.ExecuteQueryReturnDataTable(p_select); } private void SetdataGridViewAsynchronous(string p_select) { IAsyncResult _ar; // Asynchroner aufruf initialisieren. if(this.InvokeRequired) _ar = this.BeginInvoke(new MethodDelegate(SetdataGridViewAsynchronous), new object[] { p_select }); else SetdataGridView(p_select); // Do some useful work here. This would be work you want to have // run at the same time as the asynchronous call. // Warten bis wir ein "Fertig" Signal von der Asynchronen Funktion bekommen //_ar.AsyncWaitHandle.WaitOne(); // Hol das Ergebniss vom Asynchronouen Aufruf. //dlgt.EndInvoke(); } private void KonktatSuchen_Shown(object sender, EventArgs e) { m_backgroundWorker1.RunWorkerAsync(new object[] { "SELECT * FROM Kontakte" }); } private void m_backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { //SetdataGridViewAsynchronous(e.Argument.ToString()); m_dataGridView1.DataSource = Settings.m_Db.ExecuteQueryReturnDataTable("SELECT * FROM Kontakte"); } }