static uint GetNextInterval(uint interval, DateTime now, DateTime previous) { if (interval == uint.MaxValue) { return interval; } uint elapsed = (uint)(now > previous ? (now - previous).TotalMilliseconds : 0.0); return interval > elapsed ? interval - elapsed : 0; }