5

だから私は次のコードブロックを持っています:

var sw = new Stopwatch();
sw.Start();
while (sw.Elapsed.Seconds<10)
{
    System.Threading.Thread.Sleep(50);
    Console.WriteLine(sw.Elapsed.Milliseconds.ToString() + " ms");
}
sw.Stop();

そして私が持っている出力で

50 ms
101 ms
151 ms
202 ms
253 ms
304 ms
355 ms
405 ms
456 ms
507 ms
558 ms
608 ms
659 ms
710 ms
761 ms
812 ms
862 ms
913 ms
964 ms
15 ms
65 ms
116 ms
167 ms
218 ms

1000 ミリ秒ごとにリセットされるのはなぜですか? 私は10秒間待つ必要がありますが、私が使用しThread.Sleep(10000);ているこのサードパーティのライブラリもスリープしており、その間に何かをする必要があるため、使用できません。

4

3 に答える 3

6

の代わりに、のTotalMillisecondsプロパティが必要ですsw.Elapsedsw.Elapsed.Milliseconds

于 2011-08-30T13:59:43.533 に答える
1

プロパティからTimeSpan返されたものを必ずしも使用する必要はありません。Elapsed

StopWatchElapsedMilliseconds合計ミリ秒数を。として返すプロパティを直接公開しますlongElapsed取得するためにプロパティを通過するTotalMillisecondsと、ダブルが生成されます。自分にとって最も意味のある値を使用してください。

于 2011-08-30T14:10:48.533 に答える