SystemTrayMenu/Business/WaitLeave.cs
2020-04-15 17:23:42 +02:00

44 lines
1,006 B
C#

using System;
using SystemTrayMenu.Utilities;
using Timer = System.Windows.Forms.Timer;
namespace SystemTrayMenu.Handler
{
internal class WaitLeave : IDisposable
{
public event EventHandlerEmpty LeaveTriggered;
private readonly Timer timerLeaveCheck = new Timer();
public bool IsRunning => timerLeaveCheck.Enabled;
public WaitLeave(int timeUntilTriggered)
{
timerLeaveCheck.Interval = timeUntilTriggered;
timerLeaveCheck.Tick += TimerLeaveCheckTick;
}
public void Start()
{
timerLeaveCheck.Stop();
timerLeaveCheck.Start();
}
public void Stop()
{
timerLeaveCheck.Stop();
}
private void TimerLeaveCheckTick(object sender, EventArgs e)
{
timerLeaveCheck.Stop();
LeaveTriggered.Invoke();
}
public void Dispose()
{
timerLeaveCheck.Dispose();
}
}
}