private void butRead_Click(object sender, EventArgs e) { reader_counter++; Node reader = new Node(); ask temp = new ask(); temp.ShowDialog(); reader.time = Convert.ToInt32(temp.Mask);//Записали время Button button = new Button(); reader.current = button; reader.name = "r"; if (writterIsWorking) { reader.state = 2;//Если писатель работает, то читатель ждет } else { reader.state = 1;//Если писатель не работает, то читатель работает } button.Size = new System.Drawing.Size(87, 23); this.splitContainer1.Panel1.Controls.Add(button); button.Location = new System.Drawing.Point(12, 12 + 30 * reader_counter); button.Text = "Читатель" + reader_counter; button.Name = "Reader" + reader_counter; FIFO.Add(reader); }
private void butWrit_Click(object sender, EventArgs e) { if (!writterIsWorking) { Node writer = new Node(); ask temp = new ask(); temp.ShowDialog(); writer.time = Convert.ToInt32(temp.Mask); //Записываем время Button button = new Button(); writer.current = button; //Сохраняем указатель на кнопку writer.name = "w"; if (reader_counter != 0) { writer.state = 2;//Ожидает завершения работы читателей } else { writer.state = 1;//Работает } button.Size = new System.Drawing.Size(87, 23); this.splitContainer1.Panel2.Controls.Add(button); button.Location = new System.Drawing.Point(12, 42); button.Text = "Писатель"; button.Name = "Writter"; FIFO.Add(writer); writterIsWorking = true;//Появился писатель } else { MessageBox.Show("Сейчас работает другой писатель", "Уведомление"); } }