SystemTrayMenu/Business/WaitLeave.cs
2020-04-02 23:45:21 +02:00

42 lines
919 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 WaitLeave(int timeUntilTriggered)
{
timerLeaveCheck.Interval = timeUntilTriggered;
timerLeaveCheck.Tick += Leave;
}
public void Start()
{
timerLeaveCheck.Stop();
timerLeaveCheck.Start();
}
public void Stop()
{
timerLeaveCheck.Stop();
}
private void Leave(object sender, EventArgs e)
{
timerLeaveCheck.Stop();
LeaveTriggered.Invoke();
}
public void Dispose()
{
timerLeaveCheck.Dispose();
}
}
}