Files
DP44/Common/DTS.Common/Utils/ValueStopWatch.cs
2026-04-17 14:55:32 -04:00

23 lines
739 B
C#

using System;
using System.Diagnostics;
namespace DTS.Common.Utils
{
public readonly struct ValueStopwatch
{
private static readonly double TimestampToTicks = TimeSpan.TicksPerSecond / (double)Stopwatch.Frequency;
private readonly long _startTimestamp;
private ValueStopwatch(long startTimestamp) => _startTimestamp = startTimestamp;
public static ValueStopwatch StartNew() => new ValueStopwatch(Stopwatch.GetTimestamp());
public TimeSpan GetElapsedTime()
{
var end = Stopwatch.GetTimestamp();
var elapsedTicks = (long)((end - _startTimestamp) * TimestampToTicks);
return new TimeSpan(elapsedTicks);
}
}
}