Exemplo n.º 1
0
        public void StartManagement()
        {
            // Đọc thông tin host
            //- Kiểm tra host đã có thông tin chưa
            DeviceVariablesService.MyHost = hostRepo.ReadHost(DeviceVariablesService.MyHostName);
            if (DeviceVariablesService.MyHost == null)
            {
                DeviceVariablesService.MyHost = hostRepo.AddHost(DeviceVariablesService.MyHostName);
            }
            // Đọc các LD chưa đủ 5 tài khoản từ database trên máy này
            List <Device> devices = devicesRepo.CheckDevicesAccount(DeviceVariablesService.MyHostName);

            // TH có thiết bị chưa đủ tài khoản
            if (devices.Count > 0)
            {
                // Cho chạy và tạo tài khoản từng device cho đến khi có thể chạy thêm Thread => thoát ra vòng for
                // Thoát khi threadRunning < maxThread
                foreach (var device in devices)
                {
                    if (VariablesService.threadRunning < VariablesService.maxThread)
                    {
                        RunDeviceThreadCreateAcc(device);
                    }
                    else
                    {
                        while (VariablesService.threadRunning == VariablesService.maxThread)
                        {
                            Thread.Sleep(TimeSpan.FromSeconds(2));
                        }
                    }
                }
            }
            // Trong điều kiện còn cho phép lập nick mới
            while (DeviceVariablesService.CreateBotLive)
            {
                if (DeviceVariablesService.ThreadRunning < DeviceVariablesService.MaxThread)
                {
                    // Tạo và chạy 1 LD mới
                    Device device = ldControl.CreateDevice();
                    // Tạo Thread mới => chạy LD
                    RunDeviceThreadCreateAcc(device);
                }
                Thread.Sleep(2);
            }
        }