Add Cancellation Token

This commit is contained in:
张弘韬 2021-01-17 18:42:01 +08:00
parent bf96a60862
commit d203a7a5f3
2 changed files with 8 additions and 3 deletions

View file

@ -70,7 +70,7 @@ namespace Flow.Launcher.Plugin.PluginsManager
return search switch
{
var s when s.StartsWith(Settings.HotKeyInstall) => await pluginManager.RequestInstallOrUpdate(s),
var s when s.StartsWith(Settings.HotKeyInstall) => await pluginManager.RequestInstallOrUpdate(s, token),
var s when s.StartsWith(Settings.HotkeyUninstall) => pluginManager.RequestUninstall(s),
var s when s.StartsWith(Settings.HotkeyUpdate) => pluginManager.RequestUpdate(s),
_ => pluginManager.GetDefaultHotKeys().Where(hotkey =>

View file

@ -276,13 +276,18 @@ namespace Flow.Launcher.Plugin.PluginsManager
private Task _downloadManifestTask = Task.CompletedTask;
internal async ValueTask<List<Result>> RequestInstallOrUpdate(string searchName)
internal async ValueTask<List<Result>> RequestInstallOrUpdate(string searchName, CancellationToken token)
{
if (!pluginsManifest.UserPlugins.Any() && _downloadManifestTask.IsCompleted)
if (!pluginsManifest.UserPlugins.Any() &&
_downloadManifestTask.IsCompleted ||
_downloadManifestTask.IsFaulted)
_downloadManifestTask = pluginsManifest.DownloadManifest();
await _downloadManifestTask;
if (token.IsCancellationRequested)
return null;
var searchNameWithoutKeyword = searchName.Replace(Settings.HotKeyInstall, string.Empty).Trim();
var results =