Reduce UI thread blocking

This commit is contained in:
Isaac Marovitz 2022-12-29 19:20:47 +01:00
parent 9195477e0b
commit fdfbafa137
No known key found for this signature in database
GPG key ID: 97250B2B09A132E1

View file

@ -13,6 +13,7 @@ using Ryujinx.Ava.UI.ViewModels;
using Ryujinx.HLE.FileSystem;
using Ryujinx.HLE.HOS.Services.Account.Acc;
using System;
using System.Collections.ObjectModel;
using System.Threading.Tasks;
using UserId = LibHac.Fs.UserId;
@ -60,10 +61,9 @@ namespace Ryujinx.Ava.UI.Views.User
}
public void LoadSaves()
{
Dispatcher.UIThread.Post((() =>
{
ViewModel.Saves.Clear();
var saves = new ObservableCollection<SaveModel>();
var saveDataFilter = SaveDataFilter.Make(programId: default, saveType: SaveDataType.Account,
new UserId((ulong)_accountManager.LastOpenedUser.UserId.High, (ulong)_accountManager.LastOpenedUser.UserId.Low), saveDataId: default, index: default);
@ -88,14 +88,17 @@ namespace Ryujinx.Ava.UI.Views.User
if (save.ProgramId.Value != 0)
{
var saveModel = new SaveModel(save, _horizonClient, _virtualFileSystem);
ViewModel.Saves.Add(saveModel);
saves.Add(saveModel);
saveModel.DeleteAction = () => { ViewModel.Saves.Remove(saveModel); };
}
}
}
Dispatcher.UIThread.Post(() =>
{
ViewModel.Saves = saves;
ViewModel.Sort();
}
}
}));
});
}
private void GoBack(object sender, RoutedEventArgs e)