@@ -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