private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e) { try { myConn.Connect(); myDelegate += new stateConnectedDelegate(stateConnected); this.Invoke(myDelegate); } catch (Exception) { backgroundWorker1.ReportProgress(0); } }