コード例 #1
0
        private Task InternalScheduleOnce(int initialDelayMs, Action action, CancellationToken token)
        {
            if (initialDelayMs == Timeout.Infinite)
            {
                return(TaskExt.CreateInfiniteTask());
            }
            if (initialDelayMs <= 0)
            {
                action();
                return(TaskExt.CreateCompletedTask());
            }

            return(Task.Delay(initialDelayMs, token).Then(t => action()));
        }