experiment to fix asynchronous GUI operation using BeginInvoke()

This commit is contained in:
Kang Yu 2022-06-26 18:13:29 -07:00
parent ebb30f8aa6
commit 096410f3d4

View file

@ -308,12 +308,24 @@ namespace Ninjacrab.PersistentWindows.SystrayShell
static void EnableRestoreMenu(bool enableRestoreDB, bool checkUpgrade) static void EnableRestoreMenu(bool enableRestoreDB, bool checkUpgrade)
{ {
systrayForm.UpdateMenuEnable(enableRestoreDB, checkUpgrade); if (systrayForm.InvokeRequired)
systrayForm.BeginInvoke((Action) delegate ()
{
systrayForm.UpdateMenuEnable(enableRestoreDB, checkUpgrade);
});
else
systrayForm.UpdateMenuEnable(enableRestoreDB, checkUpgrade);
} }
static void EnableRestoreSnapshotMenu(bool enable) static void EnableRestoreSnapshotMenu(bool enable)
{ {
systrayForm.EnableSnapshotRestore(enable); if (systrayForm.InvokeRequired)
systrayForm.BeginInvoke((Action) delegate ()
{
systrayForm.EnableSnapshotRestore(enable);
});
else
systrayForm.EnableSnapshotRestore(enable);
} }
static public void CaptureSnapshot(int id, bool prompt = true) static public void CaptureSnapshot(int id, bool prompt = true)