次の間に(パフォーマンスの観点から)違いはありますか:
Thread.Sleep(10000);
と
for(int i=0; i<100; i++)
{
Thread.Sleep(100);
}
への 1 回の呼び出しでThread.Sleep(10000)
も、この 10 秒以内にコンテキスト スイッチが発生するのでしょうか (OS は、スリープが終了したかどうかを確認できます)、またはこのスレッドは実際には 10 秒間処理されませんか?
次の間に(パフォーマンスの観点から)違いはありますか:
Thread.Sleep(10000);
と
for(int i=0; i<100; i++)
{
Thread.Sleep(100);
}
への 1 回の呼び出しでThread.Sleep(10000)
も、この 10 秒以内にコンテキスト スイッチが発生するのでしょうか (OS は、スリープが終了したかどうかを確認できます)、またはこのスレッドは実際には 10 秒間処理されませんか?
2 番目のコード (for ループ) は、より多くのプロセス スワップを必要とし、Thread.Sleep(10000);
とにかく、System.Diagnostics.Stopwatch
クラスを使用して、これら 2 つのアプローチの正確な時間を決定できます。その差は非常に小さいと思います。
いずれにせよ、次のオーバーヘッドのため、2 番目のループには時間がかかります