我想计算我正在处理的程序的总运行时间。
目前代码看起来与此类似(sw是程序类的成员):
void Main(string[] args)
{
sw.Start();
//Code here starts a thread
//Code here joins the thread
//Code operates on results of threaded operation
sw.Stop();
Console.WrtieLine("Operation took {0}", sw.Elapsed.ToString());
}
我认为这个问题是由线程控制程序执行引起的,但这是占用时间最多的操作,我应该避免更改代码,因为其他项目依赖于它好。
作为参考,简单观察表明该代码需要将近半个小时才能运行,但根据秒表所用的时间仅为23秒左右。确切输出Operation took 00:00:23.1064841
答案 0 :(得分:1)
在这种情况下,最好的解决方案是使用Environment.TickCount
,因为它测量自系统启动以来的毫秒数,并且不像Stopwatch
那样依赖于处理器核心。
int StartTime = Environment.TickCount;
//Your Code to measure here
int EndTime = Environment.TickCount;
int runningTime = EndTime - StartTIme; //running time in milliseconds
// code to do whatever you want with runningTime