public void CreateBookRack() //создает стеллаж { BOokRack current = BookRackCreate; //обработка через временную переменную FreeBoxs--; //уменьшается количество стелажей на событие в очереди JournalInfo JInf = new JournalInfo(); JInf.ID = id; id++; JInf.TEv = TypeEvents.StartCreate; JInf.Sender = current; //запись в журнал объекта if (BookRackCreated != null) //если оно не пустое { BookRackCreated(JInf); //выполнение функций в событии } }
public void AddBookRack(BOokRack currentBookRack) //добавление в список стеллажа { BookRacks.Enqueue(currentBookRack); //добавляет элемент в конец очереди JournalInfo JInf = new JournalInfo(); JInf.ID = id; id++; JInf.TEv = TypeEvents.InRepare; JInf.Sender = currentBookRack; if (BookRackCreated != null) { BookRackCreated(JInf); //идет заполнение в журнал } if (created != null) { created(currentBookRack.ToString() + " in Repare"); //выводит инфу } }
public void Creating() { while (Active) //пока события течет { if (FreeBoxs > 0 && BookRacks.Count > 0) //если очередь не пуста { BookRackCreate = BookRacks.Dequeue(); //удаляет первый помещенный элемент и возвращает их if (created != null) { created(BookRackCreate.ToString() + " begin create"); //таким способом идет выборка из списка стеллажей } Thread threadCreate = new Thread(new ThreadStart(CreateBookRack)); //открывается поток(записывается в делегат) threadCreate.Start(); //запускается } } if (created != null) //описание события и времени { created("AutoCreating end job"); } }
public JournalInfo() { Sender = null; TimeEvent = DateTime.Now; }