Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/04/2007, 10:26
lioned69
 
Fecha de Ingreso: agosto-2006
Mensajes: 40
Antigüedad: 18 años, 6 meses
Puntos: 0
Problema basico con threads

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.