To calculate elapsed time in our code, we normally do ,
DateTime stTime = DateTime.Now;
.....
// Do some work here
....
DateTime etTime = DateTime.Now;
TimeSpan ts = etTime – stTime;
But, this method won’t always give accurate value. I found
Stopwatch class in
System.Diagnostics
namespace to calculate accurate elapsed time. Should look into it.
using System;
using System.Diagnostics;
using System.Threading;
class Program
{
static void Main(string[] args)
{
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
Thread.Sleep(10000);
stopWatch.Stop();
// Get the elapsed time as a TimeSpan value.
TimeSpan ts = stopWatch.Elapsed;
// Format and display the TimeSpan value.
string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00}",
ts.Hours, ts.Minutes, ts.Seconds,
ts.Milliseconds / 10);
Console.WriteLine(elapsedTime, "RunTime");
}
}
Above example directly taken from MSDN. For more information check this link,
http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx
5 comments:
Awesome! I am using this snippet to check the time elapsed to convert a PowerPoint presentation on http://slideonline.com - Definitely this is more accurate than the DateTime approach. Thanks for the share.
In my case, the output was: total time elapsed 00:01:32.46
Just found this post. The StopWatch is SO much more accurate than timespan!
I'm actually using the built in function .ElapsedMilliseconds to display how long my queries are taking.
This is great! It helped me a lot. But, I have a huge problem and I hope You can help me.
In my task, I have two fields that user define: first one represents number of seconds since 1/1/1997, and second contains the number of microseconds within that second. Do you know how can I calculate date based on user's data?
Greetings!
Hi Sara,
Did you try out with
DateTime(long ticks)
use following links..
http://msdn.microsoft.com/en-us/library/system.datetime.ticks.aspx
http://msdn.microsoft.com/en-us/library/z2xf7zzk.aspx
Hope this will help you.
Thanks.
Regards.
Stopwatch stopWatch = new Stopwatch();
stopWatch.Start();
// do stuff
stopWatch.Stop();
long duration = stopWatch.ElapsedMilliseconds;
Post a Comment