C# Blazor中ObserveOnDispatcher的等价物

C# Blazor中ObserveOnDispatcher的等价物,c#,multithreading,blazor,system.reactive,blazor-server-side,C#,Multithreading,Blazor,System.reactive,Blazor Server Side,在Blazor中,没有单一的UI线程,据我所知,没有调度程序。 有ComponentBase.InvokeAsync(..)但是: protected Task InvokeAsync(Action workItem); protected Task InvokeAsync(Func<Task> workItem); 受保护的任务InvokeAsync(操作工作项); 受保护的任务InvokeAsync(Func workItem); 如何从非ui线程切换到ui线程 IObser

在Blazor中,没有单一的UI线程,据我所知,没有调度程序。 有
ComponentBase.InvokeAsync(..)
但是:

protected Task InvokeAsync(Action workItem);
protected Task InvokeAsync(Func<Task> workItem);
受保护的任务InvokeAsync(操作工作项);
受保护的任务InvokeAsync(Func workItem);
如何从非ui线程切换到ui线程

IObservable<int> source ...
source.Throttle(100) // will continue on non UI thread
  .ObserveOnComponent() // how do I write this?
  .ObserveOn(this.InvokeAsync) // or this?
  .Do(this.StateHasChanged); // something that requires UI thread
  .Subscribe();
IObservable源代码。。。
source.Throttle(100)//将在非UI线程上继续
.ObserveOnComponent()//如何编写?
.ObserveOn(this.InvokeAsync)//还是这个?
.Do(this.state已更改);//需要UI线程的东西
.Subscribe();

Blazor服务器或Blazor Wasm?至少在服务器版本中,有调度程序和同步上下文。这是Blazor服务器。好的,但我如何访问它呢?我现在无法测试,但我希望SynchronizationContext.Current不为null,并且存在接受同步上下文的ObserveOn重载