TarifasANEEL/Utilities/TimerHelper.cs

44 lines
1.4 KiB
C#

using System.Timers;
namespace TarifasANEEL.Utilities
{
public static class TimerHelper
{
static DateTime dtTimerEndTime;
static void SetTimerEndTime(DateTime date) => dtTimerEndTime = date;
static void WhileTimerRuns(object sender, ElapsedEventArgs e)
{
Console.Write($"\rEncerrando em {dtTimerEndTime.Subtract(e.SignalTime).Seconds}");
}
public static void SetTimer(int durationInSeconds)
{
var vTimer = new System.Timers.Timer(100);
double dRemainingTime;
SetTimerEndTime(DateTime.Now.AddSeconds(durationInSeconds));
vTimer.Elapsed += WhileTimerRuns!;
vTimer.AutoReset = true;
vTimer.Enabled = true;
Console.WriteLine("");
Console.WriteLine("Pressione qualquer tecla para encerrar o programa...");
Console.WriteLine("");
Task.Factory.StartNew(
() =>
{
Console.ReadKey();
dRemainingTime = DateTime.Now.Subtract(dtTimerEndTime).TotalSeconds;
}
).Wait(
TimeSpan.FromSeconds(durationInSeconds)
);
}
private static void OnTimedEvent(object? source, ElapsedEventArgs e)
{
Console.WriteLine("Encerrando o aplicativo.");
Environment.Exit(0);
}
}
}