protected virtual async Task LoadAsync() { var start = Stopwatch.StartNew(); LoadingReset = false; bool anyLoaded; do { anyLoaded = false; await WrappersList.ToList().Select(async x => { try { if (x.IsLoaded) { return; } anyLoaded = true; var loaded = await Task.Run(() => CreateAndLoadAcObject(x.Value.Id, x.Value.Enabled, false)); if (x.IsLoaded) { return; } x.Value = loaded; loaded.PastLoad(); } finally { LoadedCount++; } }).WhenAll(SettingsHolder.Content.LoadingConcurrency); } while (anyLoaded); IsLoaded = true; ListReady(); Logging.Write($"[{GetType().Name}] Async loading finished: {WrappersList.Count} objects, {start.ElapsedMilliseconds} ms"); if (LoadingReset) { Load(); } }
protected void Load() { var start = Stopwatch.StartNew(); lock (_loadLock) { foreach (var item in WrappersList.Where(x => !x.IsLoaded)) { item.Value = CreateAndLoadAcObject(item.Value.Id, item.Value.Enabled); } IsLoaded = true; ListReady(); if (GetType() != typeof(CarSkinsManager)) { Logging.Write($"[{GetType().Name}] Loading finished: {WrappersList.Count} objects, {start.ElapsedMilliseconds} ms"); } } }
protected override async Task LoadAsync() { LoadingReset = false; await WrappersList.Where(x => !x.IsLoaded).Select(async x => { var loaded = await Task.Run(() => CreateAndLoadAcObject(x.Value.Id, x.Value.Enabled, false)); if (x.IsLoaded) { return; } Created?.Invoke(this, new AcObjectEventArgs <TrackSkinObject>(loaded)); x.Value = loaded; loaded.PastLoad(); }).WhenAll(SettingsHolder.Content.LoadingConcurrency); IsLoaded = true; ListReady(); if (LoadingReset) { Load(); } }
public override KunosCareerObject GetDefault() { var v = WrappersList.FirstOrDefault(x => x.Value.Id.Contains(@"series0")); return(v != null?EnsureWrapperLoaded(v) : base.GetDefault()); }
/// <summary> /// Gets first enabled skin. /// </summary> public override TrackSkinObject GetDefault() { var wrapper = WrappersList.FirstOrDefault(x => x.Value.Enabled); return(wrapper == null ? null : EnsureWrapperLoaded(wrapper)); }
public override FontObject GetDefault() { var v = WrappersList.FirstOrDefault(x => x.Value.Id.Contains(@"arial")); return(v == null?base.GetDefault() : EnsureWrapperLoaded(v)); }
public override WeatherObject GetDefault() { var v = WrappersList.GetByIdOrDefault("3_clear") ?? WrappersList.FirstOrDefault(x => x.Value.Id.Contains(@"clear")); return(v == null?base.GetDefault() : EnsureWrapperLoaded(v)); }
public override DriverModelObject GetDefault() { var v = WrappersList.FirstOrDefault(x => x.Value.Id.Contains(@"driver.kn5")); return(v == null?base.GetDefault() : EnsureWrapperLoaded(v)); }
public T GetFirstOrNull() { var wrapper = WrappersList.FirstOrDefault(); return(wrapper == null ? null : EnsureWrapperLoaded(wrapper)); }