public async Task SynchroniseDatacenter(CancellationToken cancellationToken) { try { var proxmoxNodes = await nodeClient.GetNodesAsync(); var databaseNodes = await datacenterRepository.ReadsAsync(); var clusterNodes = await clusterClient.GetClusterStatus(); var updateListTask = new List <Task>(); foreach (var node in clusterNodes) { updateListTask.Add(ProcessNode(proxmoxNodes, databaseNodes, node)); } Task.WaitAll(updateListTask.ToArray()); } catch (Exception e) { logger.LogError(e, "Error on processing sync."); } }