public class Timing
{
//startingTime--用来存储正在测试的代码的开始时间。
TimeSpan startingTime;
//duration——用来存储正在测试的代码的终止时间。
TimeSpan durantion;
public Timing()
{
startingTime = new TimeSpan(0);
durantion = new TimeSpan(0);
} public void startTime()
{
//先强制对所有代码进行回收
GC.Collect();
//挂起当前线程,直到处理终结器队列的线程清空该队列为止
GC.WaitForPendingFinalizers();
//获取关联程序运行代码所用的时间
startingTime = Process.GetCurrentProcess().Threads[0].UserProcessorTime;
} public void StopTime()
{
durantion = Process.GetCurrentProcess().Threads[0].
UserProcessorTime.Subtract(startingTime);
} public TimeSpan Result()
{
return durantion;
}
}
测试
static void Main(string[] args)
{
//DateTime starttime = DateTime.Now;
//Print(10000);
////PrintN(100000);
//DateTime endtime = DateTime.Now; //double end = TimeHelp.Service.Timehelp(starttime, endtime);
//Console.WriteLine("耗时:" + end); Timing tObj = new Timing();
tObj.startTime();
Print(500000);
tObj.StopTime();
Console.WriteLine("耗时:" + tObj.Result().TotalSeconds);
Console.Read();
} public static void Print(int N)
{
for (int i = 0; i <= N; i++)
{
Console.WriteLine(i);
}
return;
}