繁体   English   中英

用间隔时间c#生成一个随机数

[英]Generate a number random with interval time c#

我有一个包含10个数字的矩阵整数,我想每3秒随机生成一个数字。 例如,当运行程序随机显示2号时,等待3秒显示5,等待3秒时显示10...。但是我不知道如何添加间隔来生成

int[] numbers = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Random rnd = new Random();
rnd.Next(1, numbers.Length);

使用计时器,这样您就不会锁定线程

      void Main()
      {
    int[] numbers = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
    Random rnd = new Random();

    System.Timers.Timer t = new System.Timers.Timer(1000);
    t.Elapsed += (s,e)=>{
        Console.WriteLine(rnd.Next(1, numbers.Length));
    };
    t.Start();
    Console.ReadLine();
     }

最简单的方法是使用Thread.Sleep来实现延迟:

int[] numbers = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
Random rnd = new Random();
while (true)
{
    rnd.Next(1, numbers.Length);
    Thread.Sleep(3000) // 3000ms = 3 seconds
}

但是请注意,这将完全锁定线程,直到经过间隔为止。 在简单的单线程程序中这应该不是问题,但是如果您要处理更复杂的东西或任何类型的UI,则应该考虑使用计时器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM