Skip to content

Commit 900ae4c

Browse files
committed
AppOptionsProvider EnsureStore SwitchToMainThreadAsync
1 parent fa3ae7a commit 900ae4c

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

SharedProject/Options/AppOptionsProvider.cs

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,21 +31,25 @@ public void RaiseOptionsChanged(IAppOptions appOptions)
3131
public IAppOptions Get()
3232
{
3333
var options = new AppOptions(true);
34-
ThreadHelper.ThrowIfNotOnUIThread();
3534
LoadSettingsFromStorage(options);
3635
return options;
3736
}
3837

3938
private WritableSettingsStore EnsureStore()
4039
{
41-
ThreadHelper.ThrowIfNotOnUIThread();
42-
var settingsManager = new ShellSettingsManager(ServiceProvider.GlobalProvider);
43-
var settingsStore = settingsManager.GetWritableSettingsStore(SettingsScope.UserSettings);
44-
45-
if (!settingsStore.CollectionExists(Vsix.Code))
40+
WritableSettingsStore settingsStore = null;
41+
ThreadHelper.JoinableTaskFactory.Run(async () =>
4642
{
47-
settingsStore.CreateCollection(Vsix.Code);
48-
}
43+
await ThreadHelper.JoinableTaskFactory.SwitchToMainThreadAsync();
44+
var settingsManager = new ShellSettingsManager(ServiceProvider.GlobalProvider);
45+
settingsStore = settingsManager.GetWritableSettingsStore(SettingsScope.UserSettings);
46+
47+
if (!settingsStore.CollectionExists(Vsix.Code))
48+
{
49+
settingsStore.CreateCollection(Vsix.Code);
50+
}
51+
});
52+
4953
return settingsStore;
5054
}
5155

@@ -56,7 +60,6 @@ private PropertyInfo[] ReflectProperties()
5660

5761
public void LoadSettingsFromStorage(AppOptions instance)
5862
{
59-
ThreadHelper.ThrowIfNotOnUIThread();
6063
var settingsStore = EnsureStore();
6164

6265

@@ -89,7 +92,6 @@ public void LoadSettingsFromStorage(AppOptions instance)
8992

9093
public void SaveSettingsToStorage(AppOptions appOptions)
9194
{
92-
ThreadHelper.ThrowIfNotOnUIThread();
9395
var settingsStore = EnsureStore();
9496

9597
foreach (var property in ReflectProperties())

0 commit comments

Comments
 (0)