public void Start_5_Threads() { DequeueSynchronizer dequeueSynchronizer; ISmsc smsc; IQueueHandler queueHandler; smsc = SmsFactory.GetSmsc(); queueHandler = (IQueueHandler) ObjectState.GetField(smsc, "_defaultQueueHandler"); dequeueSynchronizer = new DequeueSynchronizer(5, queueHandler, Forwarder); dequeueSynchronizer.SuspendWorkers(); dequeueSynchronizer.ResumeWorkers(); Assert.AreEqual(5, dequeueSynchronizer.RunningWorkers); dequeueSynchronizer.SuspendWorkers(); Assert.AreEqual(0, dequeueSynchronizer.RunningWorkers); dequeueSynchronizer.ResumeWorkers(); Assert.AreEqual(5, dequeueSynchronizer.RunningWorkers); dequeueSynchronizer.TerminateWorkers(); Assert.AreEqual(0, dequeueSynchronizer.RunningWorkers); }
/// <summary> /// Constructor for EnqueueService mode /// New instances must be created using the SmsFactory class /// </summary> /// <param name="dequeuers"> /// Number of dequeuers to be instantiated<br/> /// The number of dequeuers cannot be changed after instantiation /// </param> internal Smsc(int dequeuers) : this() { _dequeueSynchronizer = new DequeueSynchronizer(dequeuers, _defaultQueueHandler, Forward); }