Foros del Web » Programación para mayores de 30 ;) » .NET »

Problema basico con threads

Estas en el tema de Problema basico con threads en el foro de .NET en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 19/04/2007, 10:26
 
Fecha de Ingreso: agosto-2006
Mensajes: 40
Antigüedad: 17 años, 9 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.
  #2 (permalink)  
Antiguo 25/04/2007, 16:55
Avatar de marlx  
Fecha de Ingreso: febrero-2004
Ubicación: Viña del Mar - Chile
Mensajes: 55
Antigüedad: 20 años, 2 meses
Puntos: 0
Re: Problema basico con threads

Una vez me tope con algo parecido, de todas maneras prueba agrgando esta instruccion en el evento onload del form o en el constructor

Código:
CheckForIllegalCrossThreadCalls = False
Saludos
__________________
Dim Mario as New Ingeniero
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:19.