Iniciar thread

22/09/2004 - 15:06 por raul | Informe spam
Hola

He creado un hilo, y en ese hilo quiero que ejecute un metodo. si el
metodo es de tipo void, funciona bien, pero si le paso dos parametros al
metodo, me da un error. ¿ Como se puede hacer esto?

Como tengo creado el hilo
Thread thread=new Thread(new ThreadStart( asocket.conectar));

thread.IsBackground=true;

thread.Start();

y quisiera crearlo de esta forma

Thread thread=new Thread(new ThreadStart(
asocket.conectar("192.168.1.10","20000")));

thread.IsBackground=true;

thread.Start();



Gracias
 

Leer las respuestas

#1 Alx Sharp
22/09/2004 - 17:10 | Informe spam
Hola...

Para entender porque no puedes pasar parámetros a tu
método tendrás que revisar algo sobre delegates en la
documentación MSDN, pero básicamente, lo que ocurre es que
el constructor de la clase Thread espera como parámetro un
delegate del tipo ThreadStart, el cual está declarado como

public delegate void ThreadStart();

es decir, tu método (o cualquiera que utilices para
iniciar un hilo) debe devolver void y no recibir
parámetros.

Si la declaración fuera:

public delegate void ThreadStart(object a, object b);

tu método podría recibir dos parámetros de tipo object.

Espero que ayude...

Saludos...

Hola

He creado un hilo, y en ese hilo quiero que ejecute


un metodo. si el
metodo es de tipo void, funciona bien, pero si le paso


dos parametros al
metodo, me da un error. ¿ Como se puede hacer esto?

Como tengo creado el hilo
Thread thread=new Thread(new ThreadStart(


asocket.conectar));

thread.IsBackground=true;

thread.Start();

y quisiera crearlo de esta forma

Thread thread=new Thread(new ThreadStart(
asocket.conectar("192.168.1.10","20000")));

thread.IsBackground=true;

thread.Start();



Gracias




.

Preguntas similares