我不熟悉c#秒表类。我试图找到一个函数的运行时间。当我再次调用一个函数时,我需要得到自上次调用以来的总时间。我该怎么做?
我想到了下面的话:
public double CalculateAngle(double Theta_dot, double Psi_dot)
{
mywatch.Stop();
var time = mywatch.ElapsedMilliseconds / 1000;
mywatch.Start();
}
如果您想测量自上次调用该方法以来的时间,则使用Restart:
使用Restart停止当前间隔测量并开始新的间隔测量。
public double CalculateAngle(double Theta_dot, double Psi_dot)
{
TimeSpan ts = sw.Elapsed;
mywatch.Restart();
}
根据你想要实现的目标,你可以把restart放在方法的开始或结束…
可以将执行时间存储在全局列表中。
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Threading.Tasks;
public class Program
{
public static List<long> executionTimes = new List<long>();
public static void Main()
{
Stopwatch watch = new Stopwatch();
for (int i = 0; i < 10; i++)
{
watch.Start();
MyFunction();
var elapsed = watch.ElapsedMilliseconds;
executionTimes.Add(elapsed);
}
Console.WriteLine(String.Join("; ", executionTimes));
}
public static async Task MyFunction()
{
//your function...
}
}
如果需要,您可以使用手表的Stop()或Restart()方法。