C# 将计时器设置为在两个间隔之间交替生成随机数

C# 将计时器设置为在两个间隔之间交替生成随机数,c#,C#,我想在两个不同的文本框中显示两个不同的随机生成的数字。文本框中的数字每秒都会更改。我正在调用System.Random来创建随机数: private int RandomNumber(int min, int max) { Random random = new Random(); return random.Next(min, max); } 我遇到的问题是这个系统。Random根据系统时间生成数字,因此文本框在滴答声的每秒钟生成两个相

我想在两个不同的文本框中显示两个不同的随机生成的数字。文本框中的数字每秒都会更改。我正在调用System.Random来创建随机数:

    private int RandomNumber(int min, int max)
    {
        Random random = new Random();
        return random.Next(min, max);
    }
我遇到的问题是这个系统。Random根据系统时间生成数字,因此文本框在滴答声的每秒钟生成两个相同的随机数字。我试图通过将数字的生成时间错开20毫秒来解决这个问题。我通过创建两个不同的计时器(每个文本框一个)来实现这一点,在980和1020毫秒之间交替:

    private void timer1_Tick(object sender, EventArgs e)
    {
        int xgpscoord;

        timer1.Interval = 980;
        xgpscoord = RandomNumber(10000, 90000);
        textBoxGPSx.Text = xgpscoord.ToString();
        timer1.Interval = 1020;


    }

    private void timer2_Tick(object sender, EventArgs e)
    {

        int ygpscoord;

        timer2.Interval = 1020;
        ygpscoord = RandomNumber(10000, 90000);
        textBoxGPSy.Text = ygpscoord.ToString();
        timer2.Interval = 980;


    }
但是,这不会同步计时器。我希望它们每1000毫秒同时勾选一次。我认为(如果我错了,请纠正我)我在错误的位置设置了间隔,并且在每个计时器中设置的两个间隔中只有一个被实际计数


如果有更好的方法在c#中生成随机数,而不是基于系统时间,那也可以解决我的问题

你应该做随机静态测试,例如:

private static Random random = new Random();
private int RandomNumber(int min, int max)
{
    return random.Next(min, max);
}
这样,您将只创建一个随机实例,并在调用RandomNumber时继续创建新的随机数

关于间隔,应首先设置间隔(例如,类构造函数)


希望这能对你的任务有所帮助。

你应该制作你的随机静态文件,例如:

private static Random random = new Random();
private int RandomNumber(int min, int max)
{
    return random.Next(min, max);
}
这样,您将只创建一个随机实例,并在调用RandomNumber时继续创建新的随机数

关于间隔,应首先设置间隔(例如,类构造函数)


希望这将帮助您完成任务。

这解决了我的问题。非常感谢。为什么将随机设置为静态会解决我的问题?如果System.Random根据系统时间生成数字,我生成的两个数字不应该相同吗?我在这方面有点新手,不明白为什么只创建一个Random实例并同时调用它两次会使数字的生成产生差异。如果可能,请详细说明。随机的默认构造函数根据系统时间设置种子。每次生成一个随机数时,种子将被更改为其他内容(基于公式),并返回一个随机数(基于种子值的其他公式)。如果愿意,您可以阅读更多内容。这解决了我的问题。非常感谢。为什么将随机设置为静态会解决我的问题?如果System.Random根据系统时间生成数字,我生成的两个数字不应该相同吗?我在这方面有点新手,不明白为什么只创建一个Random实例并同时调用它两次会使数字的生成产生差异。如果可能,请详细说明。随机的默认构造函数根据系统时间设置种子。每次生成一个随机数时,种子将被更改为其他内容(基于公式),并返回一个随机数(基于种子值的其他公式)。如果需要,可以阅读更多内容。