Threads con parametros

En general cuando se trabaja con Threads se utiliza el delegado ThreadStart, que no toma ningun, parametro. Para pasar parametros al Thread la firma de la funcion debe recibir un solo parametro de tipo objet y retornar nada.
Ejemplo:

static void ThreadConParametro(object o){
 
string info=(string) o;
Console.Write(info);
Thread.Sleep(10);
}
 
//donde se la quiera invocar
ParameterizedThreadStart  operacion=new ParameterizedThreadStart(ThreadConParametro);
Thread hilo=new Thread( operacion);
hilo.Start("parametro");

Listo!

6 comentarios en “Threads con parametros

  1. Mijael Stand

    que es «Operacion»???, deberias pegar el codigo completo para poder entenderlo mejor, o por lo menos la inicializaicon de esa variable =)

  2. chocolim Autor

    ParameterizedThreadStart operacion=new ParameterizedThreadStart(ThreadConParametro);

    Operacion es tu objeto que usas para invotar al thread, esta comentado todo

  3. chocolim Autor

    Pasale todos tus parametros dentro del objeto, castea a object pasale y despues volves a castear. Pasale un array o una lista con todos los parametros que necesitas usar

  4. ele

    la mejor forma es esta

    1 public void GetMainTableAsync(string url, int pagesToLoad, string sortBy)
    2 {
    3 ThreadStart _ts = delegate { GetMainTableAsyncImpl(url, pagesToLoad, sortBy); };
    4 Thread mainTableGetter = new Thread(_ts);
    5 mainTableGetter.Name = «GetMainTableAsync»;
    6 mainTableGetter.Start();
    7 }
    8
    9
    10 private void GetMainTableAsyncImpl(string url, int pagesToLoad, string sortBy)
    11 {
    12 PageRetrieveStarted(url, pagesToLoad);
    13 m_resTable = new DataSetSearchResults();
    14 MultiPageLoader(url, pagesToLoad, sortBy);
    15 }

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.