Pasar uno o más parámetros a un thread

2940 vistas

El delegado System.Threading.ThreadStart usado por las funciones de thread no tiene ningún parámetro. Para pasar parámetros a un thread tendremos que crear una clase nueva que contenga los parámetros y el método del thread.



csharp
  1. public class ThreadParametre
  2. {
  3.   private string _texto;
  4.   private int _entero;
  5.  
  6.   // Constructor
  7.   public ThreadParametre(string texto, int entero)
  8.   {
  9.     _texto = texto;
  10.     _entero = entero;
  11.   }
  12.  
  13.   // ejecución del método del thread
  14.   public void ExecuteThread()
  15.   {
  16.     for(int i = 0; i < _entero; i++)
  17.     {
  18.       Console.WriteLine("Indice : " + i);
  19.       Console.WriteLine("Mensaje : " + _texto);
  20.     }
  21.   }
  22. }





csharp
  1. public class Ejemplo
  2. {
  3.   // punto de entrada de la aplicación
  4.   public static void Main()
  5.   {
  6.     ThreadParametre EjemploThread = new ThreadParametre("Mensaje de test", 5);
  7.     Thread t = new Thread(new ThreadStart(EjemploThread.ExecuteThread));
  8.     t.Start();
  9.   }
  10. }