Beispiel #1
0
        [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);
        }
Beispiel #2
0
        [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);
        }