获取自应用程序启动以来经过的时间

本文关键字:经过 时间 应用程序 启动 获取 | 更新日期: 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 以获取当前程序运行时(以毫秒为单位)。

注意:您可以将总毫秒/已用毫秒替换为所需的任何其他时间指标。