好的。这是我所知道的行不通的:
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();
}
这将正常工作,但如果由多个线程使用,CPU 使用率会上升,这是我不想要的,我认为没有必要:
int Rand()
{
lock(rnd)
{
return rnd.Next();
}
}
那么,是否有用于 c# 的线程安全 Random 类,或者更好的使用方法?