Ejemplo n.º 1
0
 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"); //вызов событмия с прерыванием цикла
         }
     }
 }
Ejemplo n.º 2
0
        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++;
            }
        }