static void Main(string[] args) { var q = new CustomQueue(); // проверка в обычном режиме, в одном потоке q.Push(3); q.Pop(); // проверяем работу очереди при запуске операций в разных потоках // запускаем потоки операции pop, ожидающие события push for (int i = 0; i < 10; i++) { Thread popThread = new Thread(new ThreadStart(q.Pop)); popThread.Start(); } // запускаем потоки push, при вставке будет срабатывать ожидающая операция pop for (int i = 0; i < 10; i++) { Thread pushThread = new Thread(new ParameterizedThreadStart(q.Push)); Thread.Sleep(1000); pushThread.Start(i); } Console.ReadLine(); }
static void Main(string[] args) { string line; CustomQueue customQueue = new CustomQueue(); while (!string.IsNullOrEmpty(line = Console.ReadLine())) { customQueue.Enqueue(line); Console.WriteLine(customQueue.Peek()); Console.WriteLine(customQueue.Dequeue()); Console.WriteLine(customQueue.Peek()); } }