2

プロセスを開始するときは、DateTime.Now を取り、それを StartTime として覚えています。

プロセスの後半で、DateTime.Now から StartTime を差し引いて、これら 2 つの時間 (開始時間と現在時間の間) を計算します。

問題は、このアプローチが常に正確であるとは限らないことです。処理中に、タイム サーバーを使用するウィンドウによって、またはユーザーが手動で時間を変更する可能性があります。

説明されているように、ウィンドウの時間が変更された場合でも、常に適切に機能する時間を測定する他の方法はありますか?

4

3 に答える 3

2

クラスがありますStopWatch- http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx

于 2012-04-21T12:12:41.297 に答える
1

これを利用できます:ストップウォッチを使用してコード実行の時間を取得する

Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
//instead of this there is line of code that you are going to execute
Thread.Sleep(10000);
stopWatch.Stop();
// Get the elapsed time as a TimeSpan value.
TimeSpan ts = stopWatch.Elapsed;
string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
ts.Hours, ts.Minutes, ts.Seconds,
ts.Milliseconds / 10);
Console.WriteLine(elapsedTime);
Console.ReadLine();
于 2012-04-21T12:13:21.003 に答える
1

ストップウォッチを使用します。

var a = Stopwatch.StartNew(); // Initializes and starts running
var b = new Stopwatch(); // Initializes and doesn't start running

var c = a.Elapsed; // TimeSpan

a.Stop();
a.Start();
a.Reset();

ストップウォッチは時計そのもののようなもので、コンピューターの時計をカウントしません。最初から 1 つ開始し、経過時間を確認するには Elapsed を確認してください。

于 2012-04-21T12:13:57.737 に答える