C sharp - Ayuda con los Multithreadings

 
Vista:
Imágen de perfil de Oscar Arias

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
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda con los Multithreadings

Publicado por Edgar (278 intervenciones) el 25/04/2005 16:00:46
Hola

Cual es el error que te da especificamente.. quizás el problema se puede deber a que estan tratando de acceder al listbox y ejecutar el add varios threads simultaneamente y deberias usar un mutex o un semaforo.. pero para poder darte una respuesta mas precisa seria bueno saber el error que te da

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Oscar Arias

RE:Ayuda con los Multithreadings

Publicado por Oscar Arias (5 intervenciones) el 25/04/2005 16:05:13
Edgar
Supongamos que fuera el problema provocado por multiples accesos. Yo lance un solo proceso hijo y me generaba un error similar. De todas maneras no tengo el codigo donde tengo internet y viceversa. Por lo que te pido si tenes algun ejemplo de como podria evitar el acceso simultaneo sobre un objeto visual, podrias ponerlo en la pagina o mandarme un mail con la info. Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda con los Multithreadings

Publicado por Edgar (278 intervenciones) el 25/04/2005 16:30:45
Hola

Aqui tienes un ejemplo de como se usa un mutex para evitar el uso de recursos compartidos..

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpref/html/frlrfsystemthreadingmutexclasstopic.asp

Sin embargo.. si lanzaste un solo proceso obteniendo un error similar.. esto significa que el problema no es el que habia planteado sino otro...

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar