A只需在C#中以毫秒为单位稳定计算当前程序的进度。我不在乎它的时间戳是什么,不管是什么时候程序开始,午夜,还是时代,我只需要一个函数,它返回一个稳定的毫秒值,除了每毫秒增加一毫秒之外,它不会以异常的方式变化。你会感到惊讶的是,通过搜索,我几乎找不到全面而简单的答案。
编辑:为什么要从我的标题中删除C#?我想这是一个非常重要的信息。
发布于 2015-01-23 05:25:11
当程序启动时,创建一个StopWatch并创建一个Start()。
private StopWatch sw = new StopWatch();
public void StartMethod()
{
sw.Start();
}在任何时候您都可以查询秒表:
public void SomeMethod()
{
var a = sw.ElapsedMilliseconds;
}如果您想要精确/精确的内容,那么您需要使用StopWatch,请阅读Eric的博客(以前是C#编译器团队的首席开发人员) DateTime的精度与精度。
节选:
现在,问题是“从开始到结束已经过了多长时间?”和“现在几点了”是完全不同的问题吗?如果您想问的问题是某个操作花费了多长时间,并且您想要一个高精度、高精度的答案,那么请使用StopWatch类。它确实有纳秒的精度和精度,接近它的精度。
如果你不需要一个准确的时间,而且你也不关心导致毫秒负的精确性和边缘情况的可能性,那就使用DateTime。
发布于 2015-01-23 05:23:03
您可以在程序启动时以毫秒为单位存储当前时间,然后在函数中再次获取当前时间并减去
编辑:
如果您想要的是一个稳定的进程周期计数,我将使用处理器时钟而不是时间。
根据您的注释,您可以使用DateTime.Ticks,它是每毫秒的1/10,000毫秒
另外,如果您想做时间方面的事情,您可以在启动程序时使用DateTime.Now作为您的变量,并在需要时间时执行另一个DateTime.Now。它有毫秒的特性。
无论哪种方式,DateTime都是您所需要的。
发布于 2015-01-23 05:27:32
你是说DateTime.Now吗?它拥有绝对时间,减去两个DateTime实例将给出一个具有TotalMilliseconds属性的TimeSpan对象。
https://stackoverflow.com/questions/28103505
复制相似问题