public IDisposable Schedule(Action task, TimeSpan initialDelay, TimeSpan period)
        {
            var x = Volatile.Read(ref executor);

            if (x != null)
            {
                return(executor.Schedule(task, initialDelay, period));
            }
            return(EmptyDisposable.Instance);
        }
 public IDisposable Schedule(Action task)
 {
     return(executor.Schedule(task, this));
 }