
Ayuda con los Multithreadings
Publicado por Oscar Arias (5 intervenciones) el 25/04/2005 15:50:21
Se que ya en otra ocasion pedi ayuda por este tema pero es que francamente, he estado intentando entender como funciona el MT en .NET y no lo consigo.
Les mando mi problema:
Tengo una ventana desde la que controlo el lanzamiento de varios threads que hacen procesamiento intensivo sobre la base de datos. Cada thread se lleva una "referencia" a la ventana de control, de modo de poder invocar algunos metodos sobre esta. Estos metodos escriben en varios controles listbox y actualizan contadores y textbox que muestran - o deberian mostrar - al usuario en tiempo real, por donde va cada proceso. Pero cuando ejecuto estos procesos pasan una de dos cosas: O me da error de ejecucion o no hacen nada.
Ejemplo:
El thread hijo debe invocar a un metodo en la ventana de control y lo hago asi:
Ventana.Escribir("texto");
Este metodo es publico en la ventana y hace algo asi:
public void Escribir( string aText){
Listbox.items.add(aText.ToString());
contador++;
contadorTextBox.text = contador.ToString();
}
Espero haber sido claro en mi pregunta. Gracias por la respuesta.
Saludos
Les mando mi problema:
Tengo una ventana desde la que controlo el lanzamiento de varios threads que hacen procesamiento intensivo sobre la base de datos. Cada thread se lleva una "referencia" a la ventana de control, de modo de poder invocar algunos metodos sobre esta. Estos metodos escriben en varios controles listbox y actualizan contadores y textbox que muestran - o deberian mostrar - al usuario en tiempo real, por donde va cada proceso. Pero cuando ejecuto estos procesos pasan una de dos cosas: O me da error de ejecucion o no hacen nada.
Ejemplo:
El thread hijo debe invocar a un metodo en la ventana de control y lo hago asi:
Ventana.Escribir("texto");
Este metodo es publico en la ventana y hace algo asi:
public void Escribir( string aText){
Listbox.items.add(aText.ToString());
contador++;
contadorTextBox.text = contador.ToString();
}
Espero haber sido claro en mi pregunta. Gracias por la respuesta.
Saludos
Valora esta pregunta


0