[Test] public void Priority() { AutomatedWork a = new AutomatedWork(1, ThreadPriority.Lowest, 100); AutomatedWork b = new AutomatedWork(2, ThreadPriority.BelowNormal, 100); AutomatedWork c = new AutomatedWork(3, ThreadPriority.Normal, 100); worklist = new WorkQueue(); worklist.ConcurrentLimit = 1; worklist.Pause(); worklist.Add(a); worklist.Add(b); worklist.Add(c); worklist.Resume(); worklist.WaitAll(); Assert("c is first", c.StartedTime < b.StartedTime); Assert("b is second", b.StartedTime < a.StartedTime); }
[Test] public void WaitTimeout() { // Check for a timeout. started = 0; completed = 0; worklist = new WorkQueue(); worklist.RunningWorkItem += new WorkItemEventHandler(worklist_StartedWorkItem); worklist.CompletedWorkItem += new WorkItemEventHandler(concurrent_CompletedWorkItem); worklist.Add(new SimpleWork(1)); worklist.Add(new SimpleWork(2)); AutomatedWork aw = new AutomatedWork(3, ThreadPriority.Lowest); aw.millisecondsTimeout = 5000; worklist.Add(aw); Assert("timeout", !worklist.WaitAll(TimeSpan.FromSeconds(2))); AssertEquals("started", 3, started); AssertEquals("completed", 2, completed); }