Threads

10/03/2005 - 19:41 por Juan Hernandez | Informe spam
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

#1 Sebastián::PJ
11/03/2005 - 12:11 | Informe spam
No estás incrementando la variable pos...

Check my blog out at:
http://sgomez.blogspot.com
"Juan Hernandez" wrote in message
news:
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

Preguntas similares