Hola colegas estoy utilizando en un proyecto de Windows Form la soguiente:
Aquí creo el BackgroundWorker y posteriormente instancio un formulario que usare en segundo plano.
Código:
BackgroundWorker bw = new BackgroundWorker();
bw.DoWork += new DoWorkEventHandler(bwInvocaDialog);
m_frmBeneficiosReqEdit = new frmBeneficiosReqEdit();
bw.RunWorkerAsync();
m_frmBeneficiosReqEdit.ShowDialog(this);
m_frmBeneficiosReqEdit.Close();
bw.Dispose();
Aquí le mando informacion a el formulario de segundo plano y ejecuto un metodo.
Código:
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; }
}
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”
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.