En muchas ocasiones necesitamos pasar parámetros a un hilo.
Hay varias formas como puden ser variables globales o de sesión, pero en este ejemplo veámos cómo ParameterizedThreadStart
.
Nuestro ejemplo será un hilo que sume dos números de tipo Int32
. En este caso, si utilizamos ParameterizedThreadStart
sólo podremos pasar un parámetro, con lo que si necesitamos pasar más de uno, lo debemos hacer en un array. Con lo que los dos números los pasaremos mediante un array de Int32
.
Veamos el código:
private void MetodoEjemplo(object parametros)
{
Int32[] numeros = (Int32[])parametros;
Int32 resultado = numeros[0] + numeros[1];
lblResultado.Text = resultado.ToString();
}
Y la llamada al método es la siguiente:
Thread hilo = new Thread(new ParameterizedThreadStart(MetodoEjemplo));
Int32 [] numeros = {1,2};
hilo.Start(numeros);