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); }
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); }