コード例 #1
0
        public void TaskのForceCancelで強制的にタスクを止めたときはOnCompleteも呼ばれない()
        {
            var x = 10;
            var runner = new SampleTaskRunner.TaskRunner();

            var cts = new CancellationTokenSource();
            var t = new Task<double>(c => Coroutines.F1Cancelable(x, 20, c, cts.Token));

            t.OnComplete(_ =>
            {
                Assert.Fail();
            });

            t.Start(runner);
            runner.Update(5);
            t.ForceCancel();

            runner.Update();

            // この場合は IsCanceled に
            Assert.IsTrue(t.IsCanceled);
        }
コード例 #2
0
        public void 完了済みのタスクでOnCompleteすると_即座にコールバックが呼ばれる()
        {
            var runnner = new SampleTaskRunner.TaskRunner();

            var x = 10;
            var y = Coroutines.F1(x);

            var task = new Task<double>(c => Coroutines.F1Async(x, c));
            task.Start(runnner);
            runnner.Update(10);

            Assert.IsTrue(task.IsCompleted);

            bool called = false;

            task.OnComplete(t => called = true);

            Assert.IsTrue(called);
        }