首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过毫秒

通过毫秒
EN

Stack Overflow用户
提问于 2015-01-23 05:20:46
回答 4查看 762关注 0票数 0

A只需在C#中以毫秒为单位稳定计算当前程序的进度。我不在乎它的时间戳是什么,不管是什么时候程序开始,午夜,还是时代,我只需要一个函数,它返回一个稳定的毫秒值,除了每毫秒增加一毫秒之外,它不会以异常的方式变化。你会感到惊讶的是,通过搜索,我几乎找不到全面而简单的答案。

编辑:为什么要从我的标题中删除C#?我想这是一个非常重要的信息。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-01-23 05:25:11

当程序启动时,创建一个StopWatch并创建一个Start()

代码语言:javascript
复制
private StopWatch sw = new StopWatch();

public void StartMethod()
{
  sw.Start();
}

在任何时候您都可以查询秒表:

代码语言:javascript
复制
public void SomeMethod()
{
  var a = sw.ElapsedMilliseconds;
}

如果您想要精确/精确的内容,那么您需要使用StopWatch,请阅读Eric的博客(以前是C#编译器团队的首席开发人员) DateTime的精度与精度

节选:

现在,问题是“从开始到结束已经过了多长时间?”和“现在几点了”是完全不同的问题吗?如果您想问的问题是某个操作花费了多长时间,并且您想要一个高精度、高精度的答案,那么请使用StopWatch类。它确实有纳秒的精度和精度,接近它的精度。

如果你不需要一个准确的时间,而且你也不关心导致毫秒负的精确性和边缘情况的可能性,那就使用DateTime。

票数 1
EN

Stack Overflow用户

发布于 2015-01-23 05:23:03

您可以在程序启动时以毫秒为单位存储当前时间,然后在函数中再次获取当前时间并减去

编辑:

如果您想要的是一个稳定的进程周期计数,我将使用处理器时钟而不是时间。

根据您的注释,您可以使用DateTime.Ticks,它是每毫秒的1/10,000毫秒

另外,如果您想做时间方面的事情,您可以在启动程序时使用DateTime.Now作为您的变量,并在需要时间时执行另一个DateTime.Now。它有毫秒的特性。

无论哪种方式,DateTime都是您所需要的。

票数 0
EN

Stack Overflow用户

发布于 2015-01-23 05:27:32

你是说DateTime.Now吗?它拥有绝对时间,减去两个DateTime实例将给出一个具有TotalMilliseconds属性的TimeSpan对象。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28103505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档