private void ResumeTimer(IterationResult result)
{
if (_disposed)
throw new ObjectDisposedException("WorkerRole");
lock (_timerLock)
{
var waitSeconds = result.NextWaitingPeriodSeconds > 1
? result.NextWaitingPeriodSeconds
: Math.Max(1, WaitingPeriodSeconds);
var duration = TimeSpan.FromSeconds(waitSeconds);
_mainTimer.Change(duration, duration);
_nextIterationTimestamp = DateTime.UtcNow.AddSeconds(waitSeconds);
CheckIn();
}
}