public void EnqueuedWorkIsExecuted() { var value = new Synced <int>(); var queueWorker = new QueueWorker(); queueWorker.Do(() => value.Value = 10); value.WaitFor(i => i == 10); }
public void WorkQueueIsSwappedCorrectlyOnLongRunningWorkAsync() { var value1 = new Synced <bool>(); var value2 = new Synced <bool>(); var queueWorker = new QueueWorker(); queueWorker.Do(async() => { await Task.Delay(500); value1.Value = true; }); queueWorker.Do(() => { value2.Value = true; return(Task.CompletedTask); }); value2.WaitFor(b => b); value1.Value.ShouldBe(true); }
public void WorkQueueIsSwappedCorrectlyOnLongRunningWork() { var value1 = new Synced <bool>(); var value2 = new Synced <bool>(); var queueWorker = new QueueWorker(); queueWorker.Do(() => { Thread.Sleep(200); value1.Value = true; }); Thread.Sleep(100); queueWorker.Do(() => { Thread.Sleep(200); value2.Value = true; }); value2.WaitFor(b => b); value1.Value.ShouldBe(true); }