예제 #1
0
    public MainServer() //Main Thread
    {
        Console.WriteLine("MainServer started.");
        Thread.CurrentThread.Name = "mainServer";

        ServerCreater serverCreater = new ServerCreater();

        serverCreater.First2ServerCreater(); //at start we run two subserver thread
        Thread.Sleep(100);
        while (true)
        {
            Thread.Sleep(100);                                              //100+100=200ms
            RandomGenerator rand1 = new RandomGenerator();
            ServerLoads.mainAmount = ServerLoads.mainAmount - rand1.number; //responds randomly
            if (ServerLoads.mainAmount < 0)
            {
                ServerLoads.mainAmount = 0; //server load cannot be negative
            }

            Thread.Sleep(200);
            RandomGenerator rand2 = new RandomGenerator();
            ServerLoads.mainAmount = ServerLoads.mainAmount - rand2.number; //responds randomly
            if (ServerLoads.mainAmount < 0)
            {
                ServerLoads.mainAmount = 0; //server load cannot be negative
            }

            Thread.Sleep(100); //200+200+100=500ms
            //Generate random(1-100) number in every 500ms
            RandomGenerator100 rand100 = new RandomGenerator100();
            ServerLoads.mainAmount = ServerLoads.mainAmount + rand100.number;
            if (ServerLoads.mainAmount > capacity)
            {
                ServerLoads.mainAmount = capacity; //server cannot take more load than its capacity
            }

            Thread.Sleep(100);                                              //100+100=200ms
            RandomGenerator rand3 = new RandomGenerator();
            ServerLoads.mainAmount = ServerLoads.mainAmount - rand3.number; //responds randomly
            if (ServerLoads.mainAmount < 0)
            {
                ServerLoads.mainAmount = 0; //server load cannot be negative
            }
        }
    }
예제 #2
0
    public MainServer() //Main Thread
    {
        Console.WriteLine("MainServer started.");
        Thread.CurrentThread.Name = "mainServer";

        ServerCreater serverCreater = new ServerCreater();

        serverCreater.First2ServerCreater();
        Thread.Sleep(100);
        while (true)
        {
            Thread.Sleep(100); //100+100=200ms
            RandomGenerator rand1 = new RandomGenerator();
            ServerLoads.mainAmount = ServerLoads.mainAmount - rand1.number;
            if (ServerLoads.mainAmount < 0)
            {
                ServerLoads.mainAmount = 0;
            }

            Thread.Sleep(200);
            RandomGenerator rand2 = new RandomGenerator();
            ServerLoads.mainAmount = ServerLoads.mainAmount - rand2.number;
            if (ServerLoads.mainAmount < 0)
            {
                ServerLoads.mainAmount = 0;
            }

            Thread.Sleep(100); //200+200+100=500ms
            //Generate random(1-100) number in every 500ms
            RandomGenerator100 rand100 = new RandomGenerator100();
            ServerLoads.mainAmount = ServerLoads.mainAmount + rand100.number;
            if (ServerLoads.mainAmount > capacity)
            {
                ServerLoads.mainAmount = capacity;
            }

            Thread.Sleep(100); //100+100=200ms
            RandomGenerator rand3 = new RandomGenerator();
            ServerLoads.mainAmount = ServerLoads.mainAmount - rand3.number;
            if (ServerLoads.mainAmount < 0)
            {
                ServerLoads.mainAmount = 0;
            }
        }
    }