public void Update()
{
UpdateInternal();
_ElapsedTime.TotalMicroseconds = CurrentTime.TotalMicroseconds - StartTime.TotalMicroseconds;
lock (Timers)
{
RetryLoop:
foreach (var Timer in Timers)
{
lock (Timer)
{
if (Timer.Enabled && this.CurrentDateTime >= Timer.DateTime)
{
Timers.Remove(Timer);
Timer.Callback();
Timer.OnList = false;
goto RetryLoop;
}
}
}
}
}