Iniciar sesión

Ver la versión completa : [Ayuda] [Programacion] MultiThreads en .Net



IronArthur
02/05/2011, 13:32
Hola,

Ando haciendo ahora un proyecto en el curro en el que necesito rastrear y bajarme de una serie de fuentes web el resultado según una palabra. Vamos por simplificar, pones una palabra y te da el resultado de diferentes sitios p.e. google, buscador de patentes etc...

Lo estoy haciendo en .Net, concretamente en C#. Y tengo mis dudas de como hacerlo en cuanto al diseño del programa. Es bastante importante de cara a mi futuro laboral (vamos si tengo curro de aqui a 1 mes), osea que ando bastante preocupado con el tema.

He planteado esto:


Tengo una clase para cada tipo de fuente, una lee google, otra un buscador de patentes etc.. y lo guarda en una carpeta en un Xml.
Tengo una interfaz de usuario general que de momento tiene un simple campo de texto a introducir, un botón y una barra de progreso. Esta interfaz crea una Pool de threads y va lanzando cada thread de las clases del punto anterior (Un thread para cada buscador )


Necesito alguna forma de poder ir comprobando si han terminado los threads que buscan en las webs, e ir analizando el resultado Xml. Había pensado en un backgroundworker que vaya esperando a que lancen un evento de ManualResetEvent y después cree un thread que consuma el xml y lo trate o consumirlo él mismo..

Tengo bastantes dudas de si es la mejor opción lo que estoy haciendo, pq es evidente que funcionar funciona pero no sé si es lo "ideal" o "adecuado". Y sé que es exactamente lo que me van revisar.

Lo siento por la chapa pero si alguien me aconseja lo agradecería. No estoy acostumbrado a "examenes" en el curro.

Salu2 y thks

Malenko
02/05/2011, 13:45
con el manualresetevent y un waitall ya lo estas haciendo bien. si tienes dudas enviame un pm con tu email y te envio algun ejemplo.

IronArthur
02/05/2011, 13:54
Tengo problemas con el waitall pq :


No puedo hacerlo desde el forms.
Si lo hago desde el backgroundworker, debería esperar por waitany, para ir actualizando el progreso, pero lo estoy haciendo mal creo, pq lo actualiza cuando quiere.


Te mando un pm. Gracias

Salu2