Environment.TickCount来计算时间跨度可以吗?

int start = Environment.TickCount;
// Do stuff
int duration = Environment.TickCount - start;
Console.WriteLine("That took " + duration " ms");

因为TickCount是有符号的,25天后会翻滚(需要50天才能达到所有32位,但如果你想搞清楚数学,就必须放弃有符号的位),所以它看起来太危险了,没有用处.

我用DateTime.Now代替.这是做这件事的最好方法吗?

DateTime start = DateTime.Now;
// Do stuff
TimeSpan duration = DateTime.Now - start;
Console.WriteLine("That took " + duration.TotalMilliseconds + " ms");

推荐答案

使用秒表课程.在MSDN:http://msdn.microsoft.com/en-us/library/system.diagnostics.stopwatch.aspx上有一个很好的例子

    Stopwatch stopWatch = Stopwatch.StartNew();
    Thread.Sleep(10000);
    stopWatch.Stop();
    // Get the elapsed time as a TimeSpan value.
    TimeSpan ts = stopWatch.Elapsed;

.net相关问答推荐

如何在 .net MAUI 中删除不需要编译的平台?

在 Rx 中,处理线程安全是否是消费者(IObserver)的责任?

.Include() 与 .Load() 在 EntityFramework 中的性能

在 web api 控制器(.net 核心)中使用 async/await 或任务

如何将浮点数向上舍入到 C# 中最近的 int?

将 Topshelf 应用程序安装为 Windows 服务

获取当前方法的名称

使用 XmlDocument 读取 XML 属性

.NET 中的对象引用有多大?

覆盖 ASP.NET MVC 中的授权属性

文件按文件名模式存在

C# 中的 override 和 new 关键字有什么区别?

如何从 .NET 读取 PEM RSA 私钥

为什么会出现编译错误使用未分配的局部变量?

获取磁盘上文件的大小

如何从文件中删除单个属性(例如只读)?

Guid.Parse() 或 new Guid() - 有什么区别?

如果选中,则更改列表框项的 WPF DataTemplate

使用没有catch块的try-finally块

多行 C# 插值字符串文字