私はこのコードを持っています:
public void replay() {
long previous = DateTime.Now.Ticks;
for (int i = 0; i < 1000; i++) {
Thread.Sleep(300);
long cur = DateTime.Now.Ticks;
Console.WriteLine(cur - previous);
previous = cur;
}
}
次のように別のスレッドとして呼び出されます。
MethodInvoker replayer = new MethodInvoker(replay);
replayer.BeginInvoke(null, null);
しかし、出力を見ると、奇妙な動作をします。i
ペアで出力します。たとえば、完全に待機してから をi
出力し、次i
もすぐに出力してから、もう一度待機します。なぜそれをしているのですか、どうすれば修正できますか?
これは次のように出力されます。
3125040
2968788
2968788
2968788
3125040
2968788
2968788
2968788
3125040
2968788
2968788
2968788
3125040
スリープを 1 秒以上に増やしても、これは起こりません。