private Task <bool> Go(IProgress <int> progress) { return(Task.Run(() => { var job = new LongJob(); job.Spin(progress); return true; })); }
public void TestLongJobCancel() { var swA = new DebugStopwatch(); var swB = new DebugStopwatch(); var queue = new LongJobQueue(swB); var cts = new CancellationTokenSource(); var job = new LongJob(swA, swB, cts.Token); queue.EnqueueJob(job); queue.Process(); Assert.That(job.Status, Is.EqualTo(JobStatus.Paused)); queue.Process(); Assert.That(job.Status, Is.EqualTo(JobStatus.Paused)); cts.Cancel(); queue.Process(); Assert.That(job.Status, Is.EqualTo(JobStatus.Finished)); Assert.That((float)job.DebugTime, new ApproxEqualityConstraint(2.0f)); Assert.That(job.Result, Is.Null); }
public void TestLongJob() { var swA = new DebugStopwatch(); var swB = new DebugStopwatch(); var queue = new LongJobQueue(swB); var job = new LongJob(swA, swB); queue.EnqueueJob(job); queue.Process(); Assert.That(job.Status, Is.EqualTo(JobStatus.Paused)); Assert.That((float)job.DebugTime, new ApproxEqualityConstraint(1f)); queue.Process(); Assert.That(job.Status, Is.EqualTo(JobStatus.Paused)); Assert.That((float)job.DebugTime, new ApproxEqualityConstraint(2f)); queue.Process(); Assert.That(job.Status, Is.EqualTo(JobStatus.Finished)); Assert.That(job.Result, Is.EqualTo("foo!")); Assert.That((float)job.DebugTime, new ApproxEqualityConstraint(2.4f)); }