public void TaskCreatedAfterCancel_IsCanceledImmediately() { var cancelSource = new CancellationTokenSource(); using (var timer = new TaskTimer(0).CancelWith(cancelSource.Token).StartOnTimer(_getCustomTimer)) { using (var enumerator = timer.GetEnumerator()) { // skip 3 tasks for (int i = 0; i < 3; ++i) { enumerator.MoveNext(); } cancelSource.Cancel(); enumerator.MoveNext(); var task = enumerator.Current; Assert.IsNotNull(task); Assert.IsTrue(task.IsCanceled); } } }