我想在两个不同的文本框中显示两个不同的随机生成的数字。文本框中的数字每秒都在变化。我正在调用 System.Random 来创建随机数:
private int RandomNumber(int min, int max)
{
Random random = new Random();
return random.Next(min, max);
}
我遇到的问题是 System.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# 中生成随机数而不是基于系统时间,那也可以解决我的问题。