Example #1
0
        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)
            {
                int index = 0;

                if (NextDespose == true)
                {
                    Random random = new Random();
                    double value  = random.NextDouble();
                    if (value < 0.5)
                    {
                        MassServiceSystem2 nextProcess = NextMss[index];
                    }
                    else
                    {
                        // Console.WriteLine("--------Dispose--------");
                    }
                }
                else
                {
                    MassServiceSystem2 nextProcess = NextMss[index];
                    nextProcess.InAct();
                }
            }
            else
            {
                // Console.WriteLine("--------Dispose--------");
            }
        }