using System.Collections.Concurrent; namespace Easy.Realization; internal class AutoDelayTimers { private static readonly Lazy lazy = new(() => new AutoDelayTimers()); private static ConcurrentDictionary _timers; static AutoDelayTimers() { } private AutoDelayTimers() { _timers = new ConcurrentDictionary(); } public static AutoDelayTimers Instance { get { return lazy.Value; } } public static bool TryAdd(string key, Timer dealytimer) { return _timers.TryAdd(key, dealytimer); } public static void CloseTimer(string key) { if (_timers.ContainsKey(key)) { if (_timers.TryRemove(key, out Timer timer)) { timer?.Dispose(); } } } public static bool ContainsKey(string key) { return _timers.ContainsKey(key); } }