public static void RemoveQueue(Queue <MyObject> obj, StopWhile stopping) { if (stopping == null) { throw new ArgumentNullException(nameof(stopping), "Property cannot be null or empty" + nameof(stopping) + " is null"); } if (obj.Count == 0) { throw new ArgumentException("Queue<MyObject>.Count=0", nameof(obj)); } while (obj.Count > 0) // цикл для очищения { MyObject my = obj.Dequeue(); Console.WriteLine("Удален " + my.Info); if (obj.Count == 0) { stopping?.Invoke("Событие-Обьекты удалены из очереди \n"); //вызов событмия с прерыванием цикла } } }
public static void AddQueue(Queue <MyObject> obj, StopWhile stopping, int n) { if (stopping == null) { throw new ArgumentNullException(nameof(stopping), "Property cannot be null or empty" + nameof(stopping) + " is null"); } int count = 0; while (true) // цикл для добавления { obj.Enqueue(new MyObject() { Info = "Объект" + count.ToString() }); //добавление обьекта в очередь if (count + 1 >= n) { stopping?.Invoke("Событие активировалось через " + obj.Count + " добавлении обьектов в очередь \n"); //вызов событмия с прерыванием цикла break; } count++; } }