diff --git a/Plugins/Flow.Launcher.Plugin.Program/Main.cs b/Plugins/Flow.Launcher.Plugin.Program/Main.cs index 3b03f89f6..2622b16fa 100644 --- a/Plugins/Flow.Launcher.Plugin.Program/Main.cs +++ b/Plugins/Flow.Launcher.Plugin.Program/Main.cs @@ -127,9 +127,16 @@ namespace Flow.Launcher.Plugin.Program public static async Task IndexProgramsAsync() { - var t1 = Task.Run(IndexWin32Programs); - var t2 = Task.Run(IndexUwpPrograms); - await Task.WhenAll(t1, t2).ConfigureAwait(false); + var a = Task.Run(() => + { + Stopwatch.Normal("|Flow.Launcher.Plugin.Program.Main|Win32Program index cost", IndexWin32Programs); + }); + + var b = Task.Run(() => + { + Stopwatch.Normal("|Flow.Launcher.Plugin.Program.Main|UWPProgram index cost", IndexUwpPrograms); + }); + await Task.WhenAll(a, b).ConfigureAwait(false); _settings.LastIndexTime = DateTime.Today; } diff --git a/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs b/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs index deb297ca6..dc5407f1a 100644 --- a/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs +++ b/Plugins/Flow.Launcher.Plugin.Program/Programs/Win32.cs @@ -246,7 +246,7 @@ namespace Flow.Launcher.Plugin.Program.Programs if (extension == ExeExtension && File.Exists(target)) { program.LnkResolvedPath = program.FullPath; - program.FullPath = Path.GetFullPath(target).ToLower(); + program.FullPath = Path.GetFullPath(target).ToLowerInvariant(); program.ExecutableName = Path.GetFileName(target); var description = _helper.description; @@ -324,7 +324,7 @@ namespace Flow.Launcher.Plugin.Program.Programs private static string Extension(string path) { - var extension = Path.GetExtension(path)?.ToLower(); + var extension = Path.GetExtension(path)?.ToLowerInvariant(); if (!string.IsNullOrEmpty(extension)) { return extension.Substring(1); @@ -489,7 +489,8 @@ namespace Flow.Launcher.Plugin.Program.Programs private static IEnumerable ProgramsHasher(IEnumerable programs) { - return programs.GroupBy(p => p.FullPath.ToLower()) + return programs.GroupBy(p => p.FullPath.ToLowerInvariant()) + .AsParallel() .SelectMany(g => { var temp = g.Where(g => !string.IsNullOrEmpty(g.Description)).ToList(); diff --git a/Plugins/Flow.Launcher.Plugin.Program/Views/Models/ProgramSource.cs b/Plugins/Flow.Launcher.Plugin.Program/Views/Models/ProgramSource.cs index 4282eab06..fb32fb892 100644 --- a/Plugins/Flow.Launcher.Plugin.Program/Views/Models/ProgramSource.cs +++ b/Plugins/Flow.Launcher.Plugin.Program/Views/Models/ProgramSource.cs @@ -1,7 +1,6 @@ using System; using System.IO; using System.Text.Json.Serialization; -using System.Windows.Media.Imaging; using Flow.Launcher.Plugin.Program.Programs; namespace Flow.Launcher.Plugin.Program.Views.Models