Aquí creo el BackgroundWorker y posteriormente instancio un formulario que usare en segundo plano.
Código:
Aquí le mando informacion a el formulario de segundo plano y ejecuto un metodo.BackgroundWorker bw = new BackgroundWorker(); bw.DoWork += new DoWorkEventHandler(bwInvocaDialog); m_frmBeneficiosReqEdit = new frmBeneficiosReqEdit(); bw.RunWorkerAsync(); m_frmBeneficiosReqEdit.ShowDialog(this); m_frmBeneficiosReqEdit.Close(); bw.Dispose();
Código:
La primera vez me funciona perfectamente bien, pero ya las egund vez me da el error: “no se puede llamar Invoke o a BeginInvoke en un control hasta que se haya credo el identificador de ventana”void bwInvocaDialog(object sender, DoWorkEventArgs e) { try { m_frmBeneficiosReqEdit.lblNivel.Invoke((MethodInvoker)delegate() { m_frmBeneficiosReqEdit.lblNivel.Text = “”; m_frmBeneficiosReqEdit.ObtieneCriterios(); } ); } catch (Exception ex) { throw ex; } }
Y ya no sé que me falte o que deba de hacer, ya use BeginInvoke y tambien Invoque y me da el mismo error, alguna sugerencia?
Gracias.