I need to run the following method in 100 different threads simultaneously but i cant seem to get it done beacause when I try with only two threads it generates the same random numbers for both. Is there a thread safe method where i can get a random number between two set numbers? I remember I was able to do so in Java using ThreadLocalRandom.current().nextInt()
but I cant seem to find the equivalent in c#.
public void iniciarSupermercado()
{
Random random = new Random();
tiempoEntrada = random.Next(300, 600 + 1);
Thread.Sleep(tiempoEntrada);
Console.WriteLine("Ha entrado el cliente (Duracion: " + tiempoEntrada + ")");
cantPasillos = random.Next(8, 13 + 1);
Console.WriteLine("CLiente va a buscar " + cantPasillos + " pasillos");
while (cantPasillos > 0)
{
cantProdPasillo = random.Next(0, 6 + 1);
Console.WriteLine(cantProdPasillo + " productos encontrados en pasillo: " + cantPasillos);
totalProductosCliente = totalProductosCliente + cantProdPasillo;
while (cantProdPasillo > 0)
{
tiempoProducto = random.Next(20, 80 + 1);
Thread.Sleep(tiempoProducto);
cantProdPasillo--;
}
cantPasillos--;
}
Console.WriteLine("Productos : " + totalProductosCliente);
Console.WriteLine("Cliente progresa al cajero");
productosCajero = totalProductosCliente;
while (productosCajero > 0)
{
tiempoProdCajero = random.Next(20, 80 + 1);
productosCajero--;
}
Console.WriteLine("El clienta ha comprado " + totalProductosCliente + "y ha estado en el supermercado");
Console.Read();
}
}
Sorry for my bad writing, english is not my first language.