Apache.NMS.ActiveMQ.Threads.DedicatedTaskRunner.Wakeup C# (CSharp) Метод

Wakeup() публичный Метод

public Wakeup ( ) : void
Результат void
        public void Wakeup()
        {
            lock(mutex)
            {
                if(this.shutdown)
                {
                    return;
                }

                this.pending = true;

                Monitor.PulseAll(this.mutex);
            }
        }

Usage Example

        public void TestSimple()
        {
            try
            {
                new DedicatedTaskRunner(null);
                Assert.Fail("Should throw a NullReferenceException");
            }
            catch
            {
            }

            SimpleCountingTask simpleTask = new SimpleCountingTask();
            Assert.IsTrue( simpleTask.Count == 0 );
            DedicatedTaskRunner simpleTaskRunner = new DedicatedTaskRunner(simpleTask);

            simpleTaskRunner.Wakeup();
            Thread.Sleep( 500 );
            Assert.IsTrue( simpleTask.Count >= 1 );
            simpleTaskRunner.Wakeup();
            Thread.Sleep( 500 );
            Assert.IsTrue( simpleTask.Count >= 2 );

            InfiniteCountingTask infiniteTask = new InfiniteCountingTask();
            Assert.IsTrue( infiniteTask.Count == 0 );
            DedicatedTaskRunner infiniteTaskRunner = new DedicatedTaskRunner(infiniteTask);
            Thread.Sleep( 500 );
            Assert.IsTrue( infiniteTask.Count != 0 );
            infiniteTaskRunner.Shutdown();
            uint count = infiniteTask.Count;
            Thread.Sleep( 500 );
            Assert.IsTrue( infiniteTask.Count == count );
        }