@@ -21,26 +21,29 @@ internal partial class CircuitPersistenceManager(
2121{
2222 public async Task PauseCircuitAsync ( CircuitHost circuit , bool saveStateToClient = false , CancellationToken cancellation = default )
2323 {
24- var renderer = circuit . Renderer ;
25- var persistenceManager = circuit . Services . GetRequiredService < ComponentStatePersistenceManager > ( ) ;
26- var collector = new CircuitPersistenceManagerCollector ( circuitOptions , serverComponentSerializer , circuit . Renderer ) ;
27- using var subscription = persistenceManager . State . RegisterOnPersisting (
28- collector . PersistRootComponents ,
29- RenderMode . InteractiveServer ) ;
24+ await circuit . Renderer . Dispatcher . InvokeAsync ( async ( ) =>
25+ {
26+ var renderer = circuit . Renderer ;
27+ var persistenceManager = circuit . Services . GetRequiredService < ComponentStatePersistenceManager > ( ) ;
28+ var collector = new CircuitPersistenceManagerCollector ( circuitOptions , serverComponentSerializer , circuit . Renderer ) ;
29+ using var subscription = persistenceManager . State . RegisterOnPersisting (
30+ collector . PersistRootComponents ,
31+ RenderMode . InteractiveServer ) ;
3032
31- await persistenceManager . PersistStateAsync ( collector , renderer ) ;
33+ await persistenceManager . PersistStateAsync ( collector , renderer ) ;
3234
33- if ( saveStateToClient )
34- {
35- await SaveStateToClient ( circuit , collector . PersistedCircuitState , cancellation ) ;
36- }
37- else
38- {
39- await circuitPersistenceProvider . PersistCircuitAsync (
40- circuit . CircuitId ,
41- collector . PersistedCircuitState ,
42- cancellation ) ;
43- }
35+ if ( saveStateToClient )
36+ {
37+ await SaveStateToClient ( circuit , collector . PersistedCircuitState , cancellation ) ;
38+ }
39+ else
40+ {
41+ await circuitPersistenceProvider . PersistCircuitAsync (
42+ circuit . CircuitId ,
43+ collector . PersistedCircuitState ,
44+ cancellation ) ;
45+ }
46+ } ) ;
4447 }
4548
4649 internal async Task SaveStateToClient ( CircuitHost circuit , PersistedCircuitState state , CancellationToken cancellation = default )
0 commit comments