public DelayedExecutionStrategy(IDelayedExecutionStrategyConsumer consumer, IDependencyFactory dependencyFactory) { _consumer = consumer; _dependencyFactory = dependencyFactory; _consumer.OnExecute += OnConsumerExecute; _resetEvent = _dependencyFactory.CreateResetEvent(); _thread = new Thread(ExecuteContinously); _isRunning = true; _thread.Start(); }