From 6e4f6e2abfc0efa97714d5311c3150f19fbd830b Mon Sep 17 00:00:00 2001 From: Jack251970 <1160210343@qq.com> Date: Fri, 22 Nov 2024 11:20:12 +0800 Subject: [PATCH 1/3] Fix System.OperationCanceledException Issue (#3091) --- Plugins/Flow.Launcher.Plugin.Program/Main.cs | 29 ++++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/Plugins/Flow.Launcher.Plugin.Program/Main.cs b/Plugins/Flow.Launcher.Plugin.Program/Main.cs index 8bf1830e334..db3c2d222fa 100644 --- a/Plugins/Flow.Launcher.Plugin.Program/Main.cs +++ b/Plugins/Flow.Launcher.Plugin.Program/Main.cs @@ -60,15 +60,26 @@ public async Task> QueryAsync(Query query, CancellationToken token) var result = await cache.GetOrCreateAsync(query.Search, async entry => { var resultList = await Task.Run(() => - _win32s.Cast() - .Concat(_uwps) - .AsParallel() - .WithCancellation(token) - .Where(HideUninstallersFilter) - .Where(p => p.Enabled) - .Select(p => p.Result(query.Search, Context.API)) - .Where(r => r?.Score > 0) - .ToList()); + { + try + { + return _win32s.Cast() + .Concat(_uwps) + .AsParallel() + .WithCancellation(token) + .Where(HideUninstallersFilter) + .Where(p => p.Enabled) + .Select(p => p.Result(query.Search, Context.API)) + .Where(r => r?.Score > 0) + .ToList(); + } + catch (OperationCanceledException) + { + // Fix #3091: System.OperationCanceledException Issue + return emptyResults; + } + + }); resultList = resultList.Any() ? resultList : emptyResults; From 4e3fd84f064e1d8f9188fd0cbfc32064d357bf93 Mon Sep 17 00:00:00 2001 From: Jack251970 <1160210343@qq.com> Date: Sat, 23 Nov 2024 21:32:42 +0800 Subject: [PATCH 2/3] Remove useless comment --- Plugins/Flow.Launcher.Plugin.Program/Main.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Plugins/Flow.Launcher.Plugin.Program/Main.cs b/Plugins/Flow.Launcher.Plugin.Program/Main.cs index db3c2d222fa..4ea91f4e8dc 100644 --- a/Plugins/Flow.Launcher.Plugin.Program/Main.cs +++ b/Plugins/Flow.Launcher.Plugin.Program/Main.cs @@ -75,11 +75,11 @@ public async Task> QueryAsync(Query query, CancellationToken token) } catch (OperationCanceledException) { - // Fix #3091: System.OperationCanceledException Issue + Log.Warn("|Flow.Launcher.Plugin.Program.Main|Query operation cancelled"); return emptyResults; } - }); + }, token); resultList = resultList.Any() ? resultList : emptyResults; From 9cb464df0557f645609da14b37a734a7f49430c8 Mon Sep 17 00:00:00 2001 From: Jack251970 <1160210343@qq.com> Date: Sun, 24 Nov 2024 09:21:27 +0800 Subject: [PATCH 3/3] Add debug log for exception. --- Plugins/Flow.Launcher.Plugin.Program/Main.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Plugins/Flow.Launcher.Plugin.Program/Main.cs b/Plugins/Flow.Launcher.Plugin.Program/Main.cs index 4ea91f4e8dc..e311a0b94e3 100644 --- a/Plugins/Flow.Launcher.Plugin.Program/Main.cs +++ b/Plugins/Flow.Launcher.Plugin.Program/Main.cs @@ -75,7 +75,7 @@ public async Task> QueryAsync(Query query, CancellationToken token) } catch (OperationCanceledException) { - Log.Warn("|Flow.Launcher.Plugin.Program.Main|Query operation cancelled"); + Log.Debug("|Flow.Launcher.Plugin.Program.Main|Query operation cancelled"); return emptyResults; }