ランダムに生成された2つの異なる数値を2つの異なるテキストボックスに表示したいと思います。テキストボックスの数字は毎秒変わります。System.Randomを呼び出して、乱数を作成します。
private int RandomNumber(int min, int max)
{
Random random = new Random();
return random.Next(min, max);
}
私が直面している問題は、System.Randomがシステム時間に基づいて数値を生成するため、テキストボックスがティックの1秒ごとに2つの同一の乱数を生成することです。私は、数値の生成を20ミリ秒ずらして、この問題に対処しようとしました。これを行うには、980ミリ秒と1020ミリ秒の間隔を交互に繰り返す2つの異なるタイマー(テキストボックスごとに1つ)を作成します。
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ミリ秒ごとに同時にチェックしてほしい。間隔を間違った場所に設定していて、各タイマーに設定した2つの間隔のうち1つだけが実際にカウントされていると思います(間違っている場合は訂正してください)。
システム時間に基づかないc#内で乱数を生成するためのより良い方法があれば、それは私の問題も解決するでしょう。