post icon

Enviar parámetros a hilos (threads) en C#

Lo típico cuando creamos una aplicación en C# que sea multihilo o multithread es que hagamos algo como ésto

Thread hilo = new Thread(METODO_A_INVOCAR);
hilo.Start();

Pero que sucede si queremos usar un método que recibe parámetros? ya que no podemos enviar directamente dichos parámetros al método. Esto suele ser un problema común, y se puede resolverlo de varias maneras, con delegados o métodos anónimos.

La manera que veremos en ésta ocasión será la solución directa que ofrece el framework 2.0 en adelante, el cual utiliza un constructor que recibe un objeto de tipo object, lo que no siempre es la mejor opción por los posibles errores que pueden aparecer  en tiempo de ejecución y la poca flexibilidad que aporta, pero es bastante sencillo de implementar a su vez.


ParameterizedThreadStart parameterizedThreadStart = new ParameterizedThreadStart(MiMetodoDevtroce); // va el nombre del metodo que recibe un object
Thread hilo = new Thread(parameterizedThreadStart);
hilo.Start(CualquierObjeto);

public void MiMetodoDevtroce(object elObjeto)
{
  // agregar codigo necesario
}
9 noviembre 2012

Comentarios desde Facebook:

Sin Comentarios aun, puedes tú ser el primero en comentar!

Deja tu Comentario

Responder