public Device(int id, RequestQueue q, RandomGenerator g, int c)
 {
     ID = id;
     Q = q;
     Dist = g;
     Channels = c;
     FreeChannels = c;
     ProcessingNow = 0;
     Active_Apps = new List<RequestForServ>();
 }
        private void btnStart_Click(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(tbRequestNumber.Text)) MaxReq = Convert.ToInt32(tbRequestNumber.Text);
            if (!string.IsNullOrEmpty(tbWorkTime.Text)) MaxTime = Convert.ToInt32(tbWorkTime.Text);
            mainG = DistList[Convert.ToInt32(cmbGeneratorDistribution.Text) - 1];

            NewRequest = new RequestForServ(KolReq);
            NewRequest.ArrivalTime = mainG.nextDouble();
            EventList.AddEvent(NewRequest.ArrivalTime, NewRequest);
            bool stop = false;
            Event CurReq;

            while (!stop)
            {
                CurReq = EventList.GetClosest();
                Console.WriteLine(CurReq.Request.ID);
                TS = CurReq.time;
                if (CurReq.IsNew)
                {
                    Log.Add("Время: " + TS.ToString() + ". Поступила новая завка с номером: " + CurReq.Request.ID);
                    KolObrRec++;
                    DeviceList[0].AddReq(GenNewRequest());//получаем новую заявку и записываем ее в список
                    if (KolObrRec == MaxReq) StopGen = true;
                }
                else
                {
                    CurReq.Request.WasInQueue = false;
                    Console.WriteLine(CurReq.Request.ID);
                    Console.WriteLine(CurReq.TekDevice);
                    DeviceList[CurReq.TekDevice - 1].LeaveApp(CurReq.Request);//уходим с устройства на котором были
                    if (CurReq.TekDevice == DeviceList.Count)
                    {
                        if (chbClosedSystem.Checked)
                        {
                            DeviceList[0].AddReq(CurReq.Request);
                        }
                        else Log.Add("Заявка " + CurReq.Request.ID + " вышла из системы");
                    }
                    else
                    {
                        DeviceList[CurReq.TekDevice].AddReq(CurReq.Request);
                    }
                }
                stop = stop || (EventList.Events.Count <= 0) || (MaxTime > 0) && (MaxTime <= TS);
            }

            foreach (string s in Log)
                lbLog.Items.Add(s);
            ToStat();
        }