private async Task ScanDefferedAsync() {
BackgroundLoading = true;
Pinged = 0;
try {
UnavailableList.Clear();
await LoadList().Select(async address => {
try {
var entry = await Task.Run(() => ServerEntry.FromAddress(this, address));
if (entry == null) {
UnavailableList.Add(address);
return;
}
InnerWrappersList.Add(new AcItemWrapper(this, entry));
if (entry.Status == ServerStatus.Unloaded) {
await entry.Update(ServerEntry.UpdateMode.Lite);
}
Pinged++;
} catch (Exception e) {
Logging.Warning("Cannot create ServerEntry: " + e);
}
}).WhenAll(SettingsHolder.Online.PingConcurrency);
} finally {
BackgroundLoading = false;
}
}
}