using System;
using System.Threading;
public class Program
{
public static void Main()
//Join se utilizados para esperar la finalizacion de u nhilo antes de que continue.
//Un hilo finaliza cuando termina de ejecutar el codigo del metodo que le hemos pasado como delegado
int i = 0;
Thread uno = new Thread(Imprime);
uno.Start();
//Tanto uno and dos trabajand al mismo tiempo
//Main espera a uno.
//Al terminar uno - Main comienza hacer su trabajo por esta razon - uno - dos trabajan al mismo tiempo
Thread dos = new Thread(Imprime);
dos.Start();
//Al usar Join desde main, main tien que esperar a que termina uno antes de poder continuar su propio hilo.
uno.Join();
//Main tiene que esperar - hasta que uno termine su trabajo.
for(i = 0;i < 100;i++)
Console.WriteLine($"Main --> {i}");
}
static void Imprime()
int n = 0;
for(n = 0;n < 100;n++)
Console.WriteLine($"{Thread.CurrentThread.ManagedThreadId} ---> {n}");