override public void OutAct() { SetTCurrForChannels(); base.OutAct(); GetChannelByTNext().OutAct(); base.TNext = GetTNext(); if (CheckFreeChannels() == true) { base.State = 0; } if (this.Queue > 0 && CheckFreeChannels() == true) { Queue--; GetFreeChannel().InAct(); if (CheckFreeChannels() == false) { base.State = 1; } base.TNext = GetTNext(); } if (NextMss.Count > 0) { Random random = new Random(); int index = 0; if (NextDespose) { index = random.Next(0, NextMss.Count + 1); } else { index = random.Next(0, NextMss.Count); } if (index == NextMss.Count) { Console.WriteLine("--------Dispose--------"); } else { MassServiceSystem nextProcess = NextMss[index]; nextProcess.InAct(); } } else { Console.WriteLine("--------Dispose--------"); } }
public void PrintResult() { Console.WriteLine("\n-------------RESULTS-------------"); foreach (Element e in list) { e.PrintResult(); Console.WriteLine(); if (e.GetType() == typeof(MassServiceSystem)) { MassServiceSystem p = (MassServiceSystem)e; } } }
static void Main(string[] args) { Create c = new Create(2.0); MassServiceSystem mss = new MassServiceSystem(1.0); Channel channel1 = new Channel(); channel1.Name = "Channel1"; Channel channel2 = new Channel(); channel2.Name = "Channel2"; mss.Channels = new List <Channel> { channel1, channel2 }; //Console.WriteLine("id0 = " + c.Id + " id1 = " + p1.Id + " id2 = " + p2.Id + " id3 = " + p3.Id + " id4 = " + p4.Id); c.NextElements.Add(mss); mss.NextDespose = true; mss.Maxqueue = 5; c.Name = "CREATOR"; mss.Name = "Smo 1"; c.Distribution = "exp"; mss.Distribution = "exp"; List <Element> list = new List <Element> { c, mss }; Model model = new Model(list); model.Simulate(1000.0); }