如何在c#中实现c ++的clock()?

时间:2017-08-23 12:13:53

标签: c# asp.net

我想在c#中实现时钟方法,并获得两个时钟的差分时间,如下面的代码所述。我在c#中使用计时器,秒表和DateTime但是我没有得到正确的时间,因为我进入c ++。 C ++代码如下所述:

clock_t start_time, diff_time;
start_time = clock();
int i = 0;
for(i=0;i<10;i++)
{
.....
}
diff_time = clock();
diff_time -= start_time;

C#代码是:

  var start_time = Stopwatch.StartNew();

                        for (int i = 0; i <= 10; i++)
                            i++;
                        var diff_time = Stopwatch.StartNew();
                        var diff_times = (start_time.ElapsedTicks - diff_time.ElapsedTicks);

1 个答案:

答案 0 :(得分:0)

我认为StopWatch应该用于衡量代码性能和其他类似的比较。如果是这样,可以。 否则,也许您应该考虑使用DateTime.Now

C函数clock()返回一个clock_t值,该值是自程序启动以来经过的时钟滴答数。将结果除以CLOCKS_PER_SEC,即可获得CPU使用的秒数。

对于DateTime,请检查: https://docs.microsoft.com/pt-br/dotnet/api/system.datetime?view=netframework-4.8 ->以下部分:

DateTime值类型表示以100纳秒为单位的日期和时间,称为刻度。例如:在公历中,刻度值31241376000000000L代表日期0100年1月1日(星期五)午夜12:00。

... 如果您使用的刻度值要转换为其他时间间隔(例如分钟或秒),则应使用TimeSpan.TicksPerDay,TimeSpan.TicksPerHour,TimeSpan.TicksPerMinute,TimeSpan.TicksPerSecond或TimeSpan.TicksPerMillisecond常数执行转换。例如,要将指定的滴答数表示的秒数添加到DateTime值的Second组件中,可以使用以下表达式 dateValue.Second + nTicks / Timespan.TicksPerSecond。 ...