获取自应用程序启动以来经过的时间
本文关键字:经过 时间 应用程序 启动 获取 | 更新日期: 2023-09-27 18:31:05
我正在将一个应用程序从ActionScript3.0(Flex)移植到C#(WPF)。AS3.0有一个名为getTimer()的方便实用程序,它以毫秒为单位返回自闪存虚拟机启动以来的时间。我正在通过类在 C# 中搜索
DateTime
DispatcherTimer
System.Diagnostics.Process
System.Diagnostics.Stopwatch
但没有发现这样的事情。对我来说,这似乎是一个非常基本的功能。例如,在Mono上运行的Unity3D有一些熟悉的东西。我在这里错过了一些实用程序吗?
提前谢谢。
Process.GetCurrentProcess().StartTime
是你的朋友。
..因此,要获得自开始以来经过的时间:
DateTime.UtcNow - Process.GetCurrentProcess().StartTime.ToUniversalTime()
或者,如果您需要更多定义,System.Diagnostics.Stopwatch
可能更可取。如果是这样,请在应用启动时启动秒表:
Stopwatch sw = Stopwatch.StartNew();
然后在执行运行期间查询 sw.Elapsed
属性。
public static class Runtime
{
static Runtime()
{
var ThisProcess = System.Diagnostics.Process.GetCurrentProcess(); LastSystemTime = (long)(System.DateTime.Now - ThisProcess.StartTime).TotalMilliseconds; ThisProcess.Dispose();
StopWatch = new System.Diagnostics.Stopwatch(); StopWatch.Start();
}
private static long LastSystemTime;
private static System.Diagnostics.Stopwatch StopWatch;
//Public.
public static long CurrentRuntime { get { return StopWatch.ElapsedMilliseconds + LastSystemTime; } }
}
然后调用:Runtime.CurrentRuntime 以获取当前程序运行时(以毫秒为单位)。
注意:您可以将总毫秒/已用毫秒替换为所需的任何其他时间指标。