Make traceable tasks

This commit is contained in:
Namhyeon Go 2025-05-24 16:18:43 +09:00
parent c9b6c6a117
commit cb6e25eaa9

View File

@ -26,9 +26,9 @@ namespace WelsonJS.Launcher.ResourceTools
Server = server; Server = server;
_httpClient = httpClient; _httpClient = httpClient;
Task.Run(() => DiscoverFromInstalledSoftware()); Task.Run(async () => await SafeDiscoverAsync(DiscoverFromInstalledSoftware));
Task.Run(() => DiscoverFromPathVariable()); Task.Run(async () => await SafeDiscoverAsync(DiscoverFromPathVariable));
Task.Run(() => DiscoverFromProgramDirectories()); Task.Run(async () => await SafeDiscoverAsync(DiscoverFromProgramDirectories));
} }
public bool CanHandle(string path) public bool CanHandle(string path)
@ -182,6 +182,18 @@ namespace WelsonJS.Launcher.ResourceTools
DiscoveredExecutables.Add(executableFile); 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 public class CompletionItem