Esempio n. 1
0
        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);
                }
            }
        }