[英]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.