public void TestTask() { int limitCount = 0; int numberOfTask = 0; Random random = new Random(); while ((limitCount < maxQueueSize) && (numberOfTask < 20)) { if (maxQueueSize == random.Next(2, 5)) { limitCount++; Thread.Sleep(2000); Task newTask1 = Task.Factory.StartNew(() => AddToQueue(Task.CurrentId.ToString())); } else if (limitCount > 0) { limitCount--; Thread.Sleep(2000); Task newTask2 = Task.Factory.StartNew(() => GetQueueData()); } numberOfTask++; } newLimitedQueue.Dispose(); }