diff --git a/Plugins/Wox.Plugin.Program/Main.cs b/Plugins/Wox.Plugin.Program/Main.cs index d6f6550783..eb5258ee12 100644 --- a/Plugins/Wox.Plugin.Program/Main.cs +++ b/Plugins/Wox.Plugin.Program/Main.cs @@ -21,6 +21,8 @@ namespace Wox.Plugin.Program internal static UWP.Application[] _uwps { get; set; } internal static Settings _settings { get; set; } + private static bool IsStartupIndexProgramsRequired => _settings.LastReindexTime.AddDays(3) < DateTime.Today; + private static PluginInitContext _context; private static BinaryStorage _win32Storage; @@ -44,13 +46,13 @@ namespace Wox.Plugin.Program var a = Task.Run(() => { - if (!_win32s.Any()) + if (IsStartupIndexProgramsRequired || !_win32s.Any()) Stopwatch.Normal("|Wox.Plugin.Program.Main|Win32Program index cost", IndexWin32Programs); }); var b = Task.Run(() => { - if (!_uwps.Any()) + if (IsStartupIndexProgramsRequired || !_uwps.Any()) Stopwatch.Normal("|Wox.Plugin.Program.Main|Win32Program index cost", IndexUWPPrograms); }); @@ -112,6 +114,8 @@ namespace Wox.Plugin.Program var t2 = Task.Run(() => { IndexUWPPrograms(); }); Task.WaitAll(t1, t2); + + _settings.LastReindexTime = DateTime.Today; } public Control CreateSettingPanel() diff --git a/Plugins/Wox.Plugin.Program/Settings.cs b/Plugins/Wox.Plugin.Program/Settings.cs index fa266a52f3..a279001747 100644 --- a/Plugins/Wox.Plugin.Program/Settings.cs +++ b/Plugins/Wox.Plugin.Program/Settings.cs @@ -1,11 +1,12 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.IO; -using Wox.Plugin.Program.Programs; namespace Wox.Plugin.Program { public class Settings { + public DateTime LastReindexTime { get; set; } public List ProgramSources { get; set; } = new List(); public List DisabledProgramSources { get; set; } = new List(); public string[] ProgramSuffixes { get; set; } = {"bat", "appref-ms", "exe", "lnk"};