web-dev-qa-db-ja.com

アプリケーション開始からの経過時間を取得します

アプリをActionScript3.0(Flex)からC#(WPF)に移植しています。AS3.0には getTimer() という便利なユーティリティがあり、Flash仮想マシンが起動してからの時間をミリ秒単位で返します。クラスを介してC#で検索

DateTime
DispatcherTimer
System.Diagnostics.Process
System.Diagnostics.Stopwatch

しかし、私にはこれは非常に基本的な機能のようです。たとえば、Monoで実行されるUnity3Dには、なじみのあるものがあります。ここでいくつかのユーティリティを見逃していますか?

前もって感謝します。

21
Michael IV

Process.GetCurrentProcess().StartTimeはあなたの友達です。

..so開始からの経過時間を取得するには:

DateTime.UtcNow - Process.GetCurrentProcess().StartTime.ToUniversalTime()

または、さらに定義が必要な場合は、System.Diagnostics.Stopwatchが望ましいかもしれません。その場合は、アプリの起動時にストップウォッチを開始します。

Stopwatch sw = Stopwatch.StartNew();

次に、sw.Elapsed実行実行中のプロパティ。

45
spender