[GUI] Refactor ImageEntropyViewModel to use Task.Run for asynchronous operations

This commit is contained in:
2025-10-26 14:49:09 +00:00
parent 1ed9a82674
commit 627eb80c42

View File

@@ -30,11 +30,10 @@
// Copyright © 2011-2025 Natalia Portillo // Copyright © 2011-2025 Natalia Portillo
// ****************************************************************************/ // ****************************************************************************/
using System;
using System.Collections.ObjectModel; using System.Collections.ObjectModel;
using System.Diagnostics.CodeAnalysis; using System.Diagnostics.CodeAnalysis;
using System.Globalization; using System.Globalization;
using System.Threading; using System.Threading.Tasks;
using System.Windows.Input; using System.Windows.Input;
using Aaru.CommonTypes.Interfaces; using Aaru.CommonTypes.Interfaces;
using Aaru.Core; using Aaru.Core;
@@ -167,8 +166,9 @@ public sealed partial class ImageEntropyViewModel : ViewModelBase
WholeDiscChecked = false; WholeDiscChecked = false;
} }
// ReSharper disable once AsyncVoidLambda Statistics.AddCommand("entropy");
var thread = new Thread(async () =>
_ = Task.Run(async () =>
{ {
if(SeparatedTracksChecked) if(SeparatedTracksChecked)
{ {
@@ -194,10 +194,6 @@ public sealed partial class ImageEntropyViewModel : ViewModelBase
await Dispatcher.UIThread.InvokeAsync(Finish); await Dispatcher.UIThread.InvokeAsync(Finish);
}); });
Statistics.AddCommand("entropy");
thread.Start();
} }
void Finish() void Finish()
@@ -247,7 +243,7 @@ public sealed partial class ImageEntropyViewModel : ViewModelBase
void EndProgress2() => Progress2Visible = false; void EndProgress2() => Progress2Visible = false;
[SuppressMessage("ReSharper", "AsyncVoidMethod")] [SuppressMessage("ReSharper", "AsyncVoidMethod", Justification = "Used as direct event handler for dispatcher")]
async void UpdateProgress(string text, long current, long maximum) => await Dispatcher.UIThread.InvokeAsync(() => async void UpdateProgress(string text, long current, long maximum) => await Dispatcher.UIThread.InvokeAsync(() =>
{ {
ProgressText = text; ProgressText = text;
@@ -265,7 +261,7 @@ public sealed partial class ImageEntropyViewModel : ViewModelBase
ProgressValue = current; ProgressValue = current;
}); });
[SuppressMessage("ReSharper", "AsyncVoidMethod")] [SuppressMessage("ReSharper", "AsyncVoidMethod", Justification = "Used as direct event handler for dispatcher")]
async void UpdateProgress2(string text, long current, long maximum) => await Dispatcher.UIThread.InvokeAsync(() => async void UpdateProgress2(string text, long current, long maximum) => await Dispatcher.UIThread.InvokeAsync(() =>
{ {
Progress2Text = text; Progress2Text = text;