Hola . soy desarrollador de una empresa y he estado leyendo tus comentarios
acerca de multi threads
En mi trabajo me dieron la tarea de utilizar hilos sobre una aplicacion
sobre .net en la cual utilizamos
c#
Actualmente estamos utilizando IIS 5.0 y win 2000
Se me solicito que implemantara hilos ya que estamos ejecuntando aprox 50
consultas tanto a oracle como
a cubos de olap
Asi que a mi jefe se el ocurrio la idea de que podriamos utilizar los hilos
para que el tiempo en que se tarda en
obtener los resultados sea meno
Nosotros implementamos una clase llamada clsConsulta en la cual encapsulamos
toda la funcionalidad para
accesar a amba realizar las consultas a ambas bases de datos , asi como a
otras ..
en esta clase nosotros fijamos los valores de las variables de la clase
el codigo que estamos tratando de utilizar para ejecutar en paralelo las
consultas es:
private void EjecutaEnParalelo(){
ArrayList obList=new ArrayList();
for(int i=0;i<m_ListaConsultas.Count;i++)
{
int pos=i;
clsConsulta xConsulta=((clsConsulta)m_ListaConsultas[pos]);
obList.Add(new Thread(new ThreadStart(xConsulta.Ejecuta)));
((Thread)obList[pos]).Start();
}
for(int i=0;i<10;i++)
((Thread)obList[i]).Join();
}
Sobre el ArrayList estan inicializados todos los objetos con sus valores
correspondientes para ejecutar las consultas
sin embargo cuando paso la funcion miembro de uno de los objetos clsConsulta
..observo que se crean los threads de
forma apropiada con el windbg , pero sin embargo .. todos los threads
presentan en sus variables los mismos valores ..
en pocas palabras parace que todos los objetos los inicialiamos con los
mismos valores ...
Cual puede ser el problema ???
Es una solucion correcta usar multi threads ???
De que forma puedo solucionar esto mejor ??
Saludos y gracias por tu tiempo
Leer las respuestas