Beispiel #1
0
        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);
        }
Beispiel #2
0
 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("Сейчас работает другой писатель", "Уведомление");
     }
 }