public DelayedExecutor (Action methodToExecute, TimeSpan delay) { if (methodToExecute == null) throw new ArgumentNullException ("methodToExecute", "Cannot create a DelayedExecutor if methodToExecute is null"); _methodToExecute = methodToExecute; _timer = new Timer (DisableTimeAndExecuteEvent, null, TimeSpan.Zero, delay); }