【发布时间】:2011-02-17 19:42:34
【问题描述】:
我需要一个准确的计时器,而 DateTime.Now 似乎不够准确。从我阅读的描述来看,System.Diagnostics.Stopwatch 似乎正是我想要的。
但我有恐惧症。我对在实际生产代码中使用 System.Diagnostics 中的任何内容感到紧张。 (我将它广泛用于调试 Asserts 和 PrintLns 等,但还没有用于生产。)我不只是尝试使用计时器来对我的功能进行基准测试——我的应用程序需要一个实际的计时器。我在另一个论坛上读到 System.Diagnostics.StopWatch 仅用于基准测试,不应该在零售代码中使用,尽管没有给出任何理由。这是正确的,还是我(以及发布该建议的人)对 System.Diagnostics 过于封闭?即,可以在生产代码中使用 System.Diagnostics.Stopwatch 吗? 谢谢 阿德里安
【问题讨论】:
-
你需要什么类型的定时器?您是否希望在经过一段时间后调用某个方法,或者您是否需要知道到现在已经过去了多少时间?您需要什么精度?
-
how to get a real time clock in C#? 的可能副本。我看不出这与其他问题有何不同。也许如果您将其更改为“在生产中使用 System.Diagnostics 类是否有任何问题,但现在它是重复的”。
-
@John - IMO,绝对不是重复的。另一个问题是如何做到这一点;这个问题询问是否可以这样做。另一个 OP 可能有一些奇怪的理由来避免 Stopwatch(例如,疯狂的公司 BS 规则,这些规则没有意义,但仍然必须遵守。不,我不是苦涩的!)
-
我对使用 System.Diagnostics 命名空间中的任何东西都有同样的感觉。在检查了诸如 MSDN 之类的可靠来源后,最好使用
Stopwatch。我什至实现了自己的,因为我需要事件:msdn.microsoft.com/en-us/library/aa457094.aspx
标签: c# timer system.diagnostics stopwatch