Estoy introduciendome en el mundo de los threads y no se como hacer para que el siguiente código funcione:
Código:
private void InicializarForm()
{
_Principal.barraEstado = "Cargando base de materiales...";
ds = new DataSet();
string conexion = _Principal.cadenaConMater;
da = new System.Data.OleDb.OleDbDataAdapter("SELECT CodMat, Des, Pre1 FROM Materiales", conexion);
cb = new System.Data.OleDb.OleDbCommandBuilder(da);
da.Fill(ds,"Materiales");
_Principal.barraEstado = "Listo";
this.lblCargando.Visible = false;
dgMateriales.DataSource = ds.Tables["Materiales"];
//Preparamos los botones y los GroupBox
if (dgMateriales.CurrentRowIndex != -1)
AsignarPosibilidades(true, true, true, true, true);
else
AsignarPosibilidades(true, false, false, false, false);
}
private void frmMateriales_Load(object sender, System.EventArgs e)
{
Thread tAux = new Thread(new ThreadStart(InicializarForm));
tAux.Start();
while (!tAux.IsAlive);
}
El programa me da el error "Los controles creados en un subproceso no pueden tener controles primarios en un control en un subproceso diferente" en la línea: dgMateriales.DataSource = ds.Tables["Materiales"]; Me gustaría saber cómo hacer para que funcionara correctamente. Salu2 y gracias.