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(); }