public void DoTest()
 {
     _firstTestCounter = new CounterContainer();
     _errorTestCounter = new CounterContainer();
     var tt = new TestThreads(false, FirstTest, 1);
     tt.RunParallel(100);
     while (_firstTestCounter.Counter < 100)
     {
         Thread.Sleep(10);
     }
     Assert.AreEqual(100, _firstTestCounter.Counter);
     tt.Terminate();
 }
 public void DoTestMultiWithPar()
 {
     _firstTestCounter = new CounterContainer();
     _errorTestCounter = new CounterContainer();
     var tt = new TestThreads(false, SecondTest, 10);
     tt.RunParallel(1000, 2);
     while (_firstTestCounter.Counter < 1000 && _errorTestCounter.Counter==0)
     {
         Thread.Sleep(10);
     }
     Assert.AreEqual(0, _errorTestCounter.Counter);
     Assert.AreEqual(1000, _firstTestCounter.Counter);
     tt.Terminate();
 }
 public void DoTestMulti()
 {
     const int iterations = 10000;
     _firstTestCounter = new CounterContainer();
     _errorTestCounter = new CounterContainer();
     var tt = new TestThreads(false, FirstTest, 100);
     tt.RunParallel(iterations);
     while (_firstTestCounter.Counter < iterations)
     {
         Thread.Sleep(10);
     }
     Assert.AreEqual(iterations, _firstTestCounter.Counter);
     tt.Terminate();
 }
        public void DoTestMultiWithParAndSendingThread()
        {
            const int iterations = 10000;
            var lfq = new LockFreeQueue<int>();
            _sendCounter = new CounterContainer();
            _firstTestCounter = new CounterContainer();
            _errorTestCounter = new CounterContainer();
            var ttr = new TestThreads(false, ThirdTestSender, 5);
            ttr.RunParallel(iterations, lfq);

            while (_sendCounter.Counter < iterations && _errorTestCounter.Counter == 0)
            {
                Thread.Sleep(10);
            }
            Assert.AreEqual(0, _errorTestCounter.Counter);
            Assert.AreEqual(iterations, _sendCounter.Counter);
            Assert.AreEqual(iterations, lfq.Count);
            ttr.Terminate();
        }