From 861034d7d8747ab286f52ee9a7f6a3741322236d Mon Sep 17 00:00:00 2001 From: Natalia Portillo Date: Mon, 27 Oct 2025 16:14:08 +0000 Subject: [PATCH] [GUI] Optimize encoding loading by using static lambdas and updating UI on the main thread --- Aaru.Gui/ViewModels/Dialogs/EncodingsViewModel.cs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/Aaru.Gui/ViewModels/Dialogs/EncodingsViewModel.cs b/Aaru.Gui/ViewModels/Dialogs/EncodingsViewModel.cs index fa9e2d57f..6def2d831 100644 --- a/Aaru.Gui/ViewModels/Dialogs/EncodingsViewModel.cs +++ b/Aaru.Gui/ViewModels/Dialogs/EncodingsViewModel.cs @@ -37,6 +37,7 @@ using System.Threading.Tasks; using System.Windows.Input; using Aaru.Gui.Models; using Aaru.Gui.Views.Dialogs; +using Avalonia.Threading; using CommunityToolkit.Mvvm.Input; namespace Aaru.Gui.ViewModels.Dialogs; @@ -54,7 +55,7 @@ public sealed class EncodingsViewModel : ViewModelBase _ = Task.Run(() => { var encodings = Encoding.GetEncodings() - .Select(info => new EncodingModel + .Select(static info => new EncodingModel { Name = info.Name, DisplayName = info.GetEncoding().EncodingName @@ -62,13 +63,16 @@ public sealed class EncodingsViewModel : ViewModelBase .ToList(); encodings.AddRange(Claunia.Encoding.Encoding.GetEncodings() - .Select(info => new EncodingModel + .Select(static info => new EncodingModel { Name = info.Name, DisplayName = info.DisplayName })); - foreach(EncodingModel encoding in encodings.OrderBy(t => t.DisplayName)) Encodings.Add(encoding); + Dispatcher.UIThread.Invoke(() => + { + foreach(EncodingModel encoding in encodings.OrderBy(static t => t.DisplayName)) Encodings.Add(encoding); + }); }); }