44 lines
1.4 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|