Ok. Вот что я знаю, что не получится:
int Rand()
{
//will return the same number over and over again
return new Random().Next();
}
static Random rnd=new Random();
int Rand()
{
//if used like this from multiple threads, rnd will dissintegrate
//over time and always return 0
return rnd.Next();
}
Это будет работать корректно, но если используется несколькими потоками, загрузка процессора идет вверх, чего я не хочу, и который, я думаю, не нужен:
int Rand()
{
lock(rnd)
{
return rnd.Next();
}
}
Итак, существует ли потокобезопасный класс Random для С# или лучший способ его использования?