public void SetOnce(string key, DateTime expiry) { lock (_Sync) { _Expiry[key] = new ExpiryDefinition { Expiry = expiry, Period = TimeSpan.FromDays(100000) }; } }
public void Restart(string key, DateTime? expiry = null, TimeSpan? period = null) { lock (_Sync) { TimeSpan newPeriod; DateTime newExpiry; if (period == null) { ExpiryDefinition ed; newPeriod = _Expiry.TryGetValue(key, out ed) ? ed.Period : DefaultPeriod; newExpiry = (expiry ?? DateTime.UtcNow) + newPeriod; } else { newPeriod = period.Value; newExpiry = (expiry ?? DateTime.UtcNow) + newPeriod; } _Expiry[key] = new ExpiryDefinition { Expiry = newExpiry, Period = newPeriod }; } }