public static void StartLifxNetwork() { Task.Run(() => Receive()); _network.RegisterSender(SendCommand); var hostName = Dns.GetHostName(); var hostEntry = Dns.GetHostEntry(hostName); var ipAddresses = hostEntry.AddressList.Where(a => a.AddressFamily == AddressFamily.InterNetwork).ToList(); foreach (var ipAddress in ipAddresses) { var parts = ipAddress.ToString().Split(new[] { '.' }).Take(3); var address = string.Join(".", parts) + ".255"; Task.Run(async() => { while (true) { _network.ScanNetwork(address); _network.ScanAccessPoints(address); var seconds = _network.GetBulbs().Any() ? 600 : 3; await Task.Delay(TimeSpan.FromSeconds(seconds)); } }); } }