2012-04-21 14 views
2

私はいくつかのプロセスを開始すると、DateTime.Nowをとり、StartTimeとして覚えています。絶対時間測定

後で、DateTime.NowからStartTimeを差し引いて、開始時刻と現在時刻の間に渡された時間を計算します。

ここで問題になるのは、このアプローチが必ずしも正確ではないということです。プロセス中に、タイムサーバーを使用するウィンドウによって、またはユーザーによって手動で時間が変更される可能性があります。

時間を測定するための他の方法がありますが、これは正しく動作します。

+0

偉大な、それは私が望んでいただけです – Dusan

答えて

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つだけ開始し、経過時間を確認して経過した時間を確認してください。

1

あなたがこれを利用することができます:Get time of Code Execution Using StopWatch

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();