public MachineController(UtilizationTable holder, MachineTable machineTable, ContainersType containerTypes) { MachineTable = machineTable; ReadyMachineTable = new MachineTable(); PoweredOffMachinesTable = new MachineTable(); ContainerTypes = containerTypes; DataHolder = holder; Task t = new Task(async() => { while (Started) { var currentTotal = MachineTable.GetHostsCount(); var mcount = Convert.ToInt32(currentTotal * 0.05); var rcount = ReadyMachineTable.GetHostsCount(); if (!StartingMachine) { if (mcount > rcount && PoweredOffMachinesTable.GetHostsCount() > 0) { await WakeIdleHost(); } else if (mcount < rcount) { await PowerOffExtraMachines(); } } //else //{ //} await Task.Delay(Global.Second); } }); t.Start(); }