簡體   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