C#系统。Random需要睡眠才能工作 for(int i=1;i

C#系统。Random需要睡眠才能工作 for(int i=1;i,c#,random,C#,Random,问题在于这一行: for (int i = 1; i <= 55; i++ ) { System.Random myRandom = new System.Random(); //int myInt; 3 lines just alternate method //myInt = myRandom.Next(); //System.Console.WriteLine(myInt); System.Console.WriteLine(myRandom.

问题在于这一行:

for (int i = 1; i <= 55; i++ )
{
    System.Random myRandom = new System.Random();
    //int myInt; 3 lines just alternate method
    //myInt = myRandom.Next();
    //System.Console.WriteLine(myInt);
    System.Console.WriteLine(myRandom.Next());
    Thread.Sleep(15); // if less, trouble
}
它应该在for循环之外。为什么?因为它会根据计时信息生成一个随机种子,当您一个接一个地创建它们时,它们都会得到相同的种子。当您使线程在迭代之间休眠时,时间会发生足够的变化,以便下一个
random
获得不同的种子值

请尝试以下方法:

System.Random myRandom = new System.Random();
System.Random myRandom=new System.Random();

对于(int i=1;i),原因是您每次都在创建一个新的Random实例。有关详细信息,请参阅此问题:
System.Random myRandom = new System.Random();
for(int i = 1; i <= 55; i++)
{
    // Here be the rest of the code
}