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