Ejemplo n.º 1
0
        public void TestLongHandler()
        {
            TickTimer.TickProvider = new TickProviderDateTime();
            _TestText.Clear();
            TickTimerThread timerThread = new TickTimerThread();

            // A: 100, 600, 1100, 2100
            TickTimer timerA = new TickTimer(1, 100, 500, 4);

            timerA.Handler = TimerProcLongHandler;

            // B: 305, 1305, 2305, 3305
            TickTimer timerB = new TickTimer(2, 305, 1000, 4);

            timerB.Handler = TimerProcLongHandler;

            // AB: *100, 305, *600, *1100, 1305, *2100, 2305, *3305
            timerThread.AddTimer(timerA);
            timerThread.AddTimer(timerB);
            timerThread.Start();

            // TO REVIEW: Waiting 3500 adds an extra 'B'. Why is this? Look at precise timing of handler calls.
            Thread.Sleep(3000);
            String textSoFar = _TestText.ToString();

            Debug.WriteLine("TickTimerThreadTest.TestLongHandler, after wait, test text = " + textSoFar);
            Assert.AreEqual("AAAAB", textSoFar);

            timerThread.Stop();
        }
Ejemplo n.º 2
0
        public void TestBasic()
        {
            TickTimer.TickProvider = new TickProviderDateTime();
            int threadID = Thread.CurrentThread.ManagedThreadId;

            Debug.WriteLine("Main thread ID = " + threadID);
            _TestText.Clear();
            TickTimerThread timerThread = new TickTimerThread();

            // A: 100, 600, 1100
            TickTimer timerA = new TickTimer(1, 100, 500, 3);

            timerA.Handler = TimerProcBasic;

            // B: 205, 1205
            TickTimer timerB = new TickTimer(2, 205, 1000, 2);

            timerB.Handler = TimerProcBasic;

            // C: 310, 510, 710, 910, 1110
            TickTimer timerC = new TickTimer(3, 310, 200, 5);

            timerC.Handler = TimerProcBasic;

            timerThread.AddTimer(timerA);
            timerThread.AddTimer(timerB);
            timerThread.AddTimer(timerC);
            timerThread.Start();

            Thread.Sleep(750);
            String textSoFar = _TestText.ToString();

            Debug.WriteLine("TickTimerThreadTest.TestBasic, after 750 ms, test text = " + textSoFar);
            Assert.AreEqual("ABCCAC", textSoFar);

            Thread.Sleep(550);
            textSoFar = _TestText.ToString();
            Debug.WriteLine("TickTimerThreadTest.TestBasic, after 1300 ms, test text = " + textSoFar);
            Assert.AreEqual("ABCCACCACB", textSoFar);

            timerThread.Stop();
        }