Threads rapidos... Demasiado rapidos

23/02/2006 - 15:38 por Bodescu | Informe spam
Hola a la comunidad:

Mi problema es conseguir que se coordinen los threads:

Utilizo un thread lanzadera, para llamar a un metodo al que hay que
pasarle parametros. Inmediatamente despues de lanzado el metodo que pasa
los params, estos deben actualizar su valor.

El caso es que la creacion de los hilos es tan rapida que no da tiempo a
los parametros a actualizar su valor, y me crea varios hilos iguales...

Se os ocurre alguna idea?

Gracias

Preguntas similare

Leer las respuestas

#1 Octavio Hernandez
24/02/2006 - 00:37 | Informe spam
Hola,

Para la sincronización de los hilos puedes utilizar el método Thread.Join():

http://msdn.microsoft.com/library/d...nTopic.asp

Leyendo este mensaje tuyo y el anterior, me da la impresión de que debes
olvidarte de la idea de la "lanzadera" y simplemente poner el código que
tienes en ese hilo en el cuerpo del bucle dentro del que creas los demás
hilos.

Slds - Octavio


"Bodescu" escribió en el mensaje
news:OE%
Hola a la comunidad:

Mi problema es conseguir que se coordinen los threads:

Utilizo un thread lanzadera, para llamar a un metodo al que hay que
pasarle parametros. Inmediatamente despues de lanzado el metodo que pasa
los params, estos deben actualizar su valor.

El caso es que la creacion de los hilos es tan rapida que no da tiempo a
los parametros a actualizar su valor, y me crea varios hilos iguales...

Se os ocurre alguna idea?

Gracias
Respuesta Responder a este mensaje
#2 Bodescu
24/02/2006 - 09:45 | Informe spam
Hola Octavio, gracias por tu respuesta.

La cosa es tal que asi:

for (int x=0;x<c;x++)
{
Tarea= new Thread(new Threadstart(Lanzadera));
//Actualizacion de parametros
}

Si no uso la lanzadera, me pasa esto:

for (int x=0;x<c;x++)
{
Tarea= new Thread(new Threadstart(Mimetodo(x,y)));
//Actualizacion de parametros
}
Y me dice que esperaba un metodo...

Como me sugieres que lo implemente?

un saludo





Octavio Hernandez wrote:
Hola,

Para la sincronización de los hilos puedes utilizar el método Thread.Join():

http://msdn.microsoft.com/library/d...nTopic.asp

Leyendo este mensaje tuyo y el anterior, me da la impresión de que debes
olvidarte de la idea de la "lanzadera" y simplemente poner el código que
tienes en ese hilo en el cuerpo del bucle dentro del que creas los demás
hilos.

Slds - Octavio


"Bodescu" escribió en el mensaje
news:OE%
Hola a la comunidad:

Mi problema es conseguir que se coordinen los threads:

Utilizo un thread lanzadera, para llamar a un metodo al que hay que
pasarle parametros. Inmediatamente despues de lanzado el metodo que pasa
los params, estos deben actualizar su valor.

El caso es que la creacion de los hilos es tan rapida que no da tiempo a
los parametros a actualizar su valor, y me crea varios hilos iguales...

Se os ocurre alguna idea?

Gracias




Respuesta Responder a este mensaje
#3 Vyacheslav Popov
24/02/2006 - 18:58 | Informe spam
Hola Bodescu,
En este caso puedes utilizar el ThreadPool que permite pasar un parametro
como estado al metodo.

Espero que te sirva.

"Bodescu" escribió en el mensaje
news:
Hola Octavio, gracias por tu respuesta.

La cosa es tal que asi:

for (int x=0;x<c;x++)
{
Tarea= new Thread(new Threadstart(Lanzadera));
//Actualizacion de parametros
}

Si no uso la lanzadera, me pasa esto:

for (int x=0;x<c;x++)
{
Tarea= new Thread(new Threadstart(Mimetodo(x,y)));
//Actualizacion de parametros
}
Y me dice que esperaba un metodo...

Como me sugieres que lo implemente?

un saludo





Octavio Hernandez wrote:
Hola,

Para la sincronización de los hilos puedes utilizar el método
Thread.Join():


http://msdn.microsoft.com/library/d...nTopic.asp

Leyendo este mensaje tuyo y el anterior, me da la impresión de que debes
olvidarte de la idea de la "lanzadera" y simplemente poner el código que
tienes en ese hilo en el cuerpo del bucle dentro del que creas los demás
hilos.

Slds - Octavio


"Bodescu" escribió en el mensaje
news:OE%
Hola a la comunidad:

Mi problema es conseguir que se coordinen los threads:

Utilizo un thread lanzadera, para llamar a un metodo al que hay que
pasarle parametros. Inmediatamente despues de lanzado el metodo que pasa
los params, estos deben actualizar su valor.

El caso es que la creacion de los hilos es tan rapida que no da tiempo a
los parametros a actualizar su valor, y me crea varios hilos iguales...

Se os ocurre alguna idea?

Gracias



Respuesta Responder a este mensaje
#4 Bodescu
25/02/2006 - 11:05 | Informe spam
Gracis por la sugerencia, estoy en ello...

Puedes darme un ejemplo de implementacion?

Un saludo

Vyacheslav Popov wrote:
Hola Bodescu,
En este caso puedes utilizar el ThreadPool que permite pasar un parametro
como estado al metodo.

Espero que te sirva.

"Bodescu" escribió en el mensaje
news:
Hola Octavio, gracias por tu respuesta.

La cosa es tal que asi:

for (int x=0;x<c;x++)
{
Tarea= new Thread(new Threadstart(Lanzadera));
//Actualizacion de parametros
}

Si no uso la lanzadera, me pasa esto:

for (int x=0;x<c;x++)
{
Tarea= new Thread(new Threadstart(Mimetodo(x,y)));
//Actualizacion de parametros
}
Y me dice que esperaba un metodo...

Como me sugieres que lo implemente?

un saludo





Octavio Hernandez wrote:
Hola,

Para la sincronización de los hilos puedes utilizar el método
Thread.Join():


http://msdn.microsoft.com/library/d...nTopic.asp

Leyendo este mensaje tuyo y el anterior, me da la impresión de que debes
olvidarte de la idea de la "lanzadera" y simplemente poner el código que
tienes en ese hilo en el cuerpo del bucle dentro del que creas los demás
hilos.

Slds - Octavio


"Bodescu" escribió en el mensaje
news:OE%
Hola a la comunidad:

Mi problema es conseguir que se coordinen los threads:

Utilizo un thread lanzadera, para llamar a un metodo al que hay que
pasarle parametros. Inmediatamente despues de lanzado el metodo que pasa
los params, estos deben actualizar su valor.

El caso es que la creacion de los hilos es tan rapida que no da tiempo a
los parametros a actualizar su valor, y me crea varios hilos iguales...

Se os ocurre alguna idea?

Gracias







Respuesta Responder a este mensaje
#5 Vyacheslav Popov
25/02/2006 - 12:14 | Informe spam
Hola Bodescu, aqui tienes un ejemplo de uso

//
using System.Threading;
using System.Drawing;
//

for (int x=0; x<64; x++)
{
ThreadPool.QueueUserWorkItem(new WaitCallback(Metodo), new Point(x, y));
//
}
//
public void Metodo(object state)
{
Point p = (Point)state;
//
}

Espero que te sirva.
Saludos.

"Bodescu" escribió en el mensaje
news:
Gracis por la sugerencia, estoy en ello...

Puedes darme un ejemplo de implementacion?

Un saludo

Vyacheslav Popov wrote:
Hola Bodescu,
En este caso puedes utilizar el ThreadPool que permite pasar un parametro
como estado al metodo.

Espero que te sirva.

"Bodescu" escribió en el mensaje
news:
Hola Octavio, gracias por tu respuesta.

La cosa es tal que asi:

for (int x=0;x<c;x++)
{
Tarea= new Thread(new Threadstart(Lanzadera));
//Actualizacion de parametros
}

Si no uso la lanzadera, me pasa esto:

for (int x=0;x<c;x++)
{
Tarea= new Thread(new Threadstart(Mimetodo(x,y)));
//Actualizacion de parametros
}
Y me dice que esperaba un metodo...

Como me sugieres que lo implemente?

un saludo





Octavio Hernandez wrote:
Hola,

Para la sincronización de los hilos puedes utilizar el método
Thread.Join():


http://msdn.microsoft.com/library/d...nTopic.asp

Leyendo este mensaje tuyo y el anterior, me da la impresión de que
debes olvidarte de la idea de la "lanzadera" y simplemente poner el
código que tienes en ese hilo en el cuerpo del bucle dentro del que
creas los demás hilos.

Slds - Octavio


"Bodescu" escribió en el mensaje
news:OE%
Hola a la comunidad:

Mi problema es conseguir que se coordinen los threads:

Utilizo un thread lanzadera, para llamar a un metodo al que hay que
pasarle parametros. Inmediatamente despues de lanzado el metodo que
pasa los params, estos deben actualizar su valor.

El caso es que la creacion de los hilos es tan rapida que no da tiempo
a los parametros a actualizar su valor, y me crea varios hilos
iguales...

Se os ocurre alguna idea?

Gracias







Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida