我想让我的定时器从我开始的时间持续到现在,我需要使用时间跨度的逻辑来计算从计时器开始到当前时间的经过时间,以下是我所做的:
CancellationTokenSource cts = _cancellationTokenSource; // safe copy
//Timer Starts here
_TimeSpan = TimeSpan.FromMinutes(TimeSheet.TotalTime);
//Increment timer by a second interval
Device.StartTimer(TimeSpan.FromSeconds(1), () => {
if (cts.IsCancellationRequested)
{
return false;
}
else
{
Device.BeginInvokeOnMainThread(() => {
_TimeSpan += TimeSpan.FromSeconds(1);
displaytime = _TimeSpan.ToString(@"h:m:s");
TimeSheet.TotalTimeForDisplay = displaytime;
Console.WriteLine("Timer");
Console.WriteLine(displaytime);
});
return true;
}
useSystem.Timers.Timer
// use whatever start time you need
DateTime start = DateTime.Now;
// 1000ms = 1s
System.Timers.Timer timer = new System.Timers.Timer(1000);
timer.Elapsed += OnTimedEvent;
timer.Start();
然后
private static void OnTimedEvent(Object source, ElapsedEventArgs e)
{
var elapsed = DateTime.Now - start;
}