From cb6e25eaa95b9d38efe9e31d2feb8d55a88382b0 Mon Sep 17 00:00:00 2001 From: "Namhyeon, Go" Date: Sat, 24 May 2025 16:18:43 +0900 Subject: [PATCH] Make traceable tasks --- .../ResourceTools/Completion.cs | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/WelsonJS.Toolkit/WelsonJS.Launcher/ResourceTools/Completion.cs b/WelsonJS.Toolkit/WelsonJS.Launcher/ResourceTools/Completion.cs index f28f985..5ff7ecf 100644 --- a/WelsonJS.Toolkit/WelsonJS.Launcher/ResourceTools/Completion.cs +++ b/WelsonJS.Toolkit/WelsonJS.Launcher/ResourceTools/Completion.cs @@ -26,9 +26,9 @@ namespace WelsonJS.Launcher.ResourceTools Server = server; _httpClient = httpClient; - Task.Run(() => DiscoverFromInstalledSoftware()); - Task.Run(() => DiscoverFromPathVariable()); - Task.Run(() => DiscoverFromProgramDirectories()); + Task.Run(async () => await SafeDiscoverAsync(DiscoverFromInstalledSoftware)); + Task.Run(async () => await SafeDiscoverAsync(DiscoverFromPathVariable)); + Task.Run(async () => await SafeDiscoverAsync(DiscoverFromProgramDirectories)); } public bool CanHandle(string path) @@ -182,6 +182,18 @@ namespace WelsonJS.Launcher.ResourceTools DiscoveredExecutables.Add(executableFile); } } + + private async Task SafeDiscoverAsync(Action discoveryMethod) + { + try + { + await Task.Run(discoveryMethod); + } + catch (Exception ex) + { + Trace.TraceError($"Discovery failed: {ex.Message}"); + } + } } public class CompletionItem