コード例 #1
0
ファイル: BaseAcManager.cs プロジェクト: Abishai2007/actools
        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");
                }
            }
        }
コード例 #2
0
        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();
            }
        }