我最近继承了一个Blazor Webassembly应用程序,但是我对dotnet或Blazor的经验非常有限。一些组件使用
我之所以问,是因为当尝试使用bUnit渲染组件时,
System.InvalidOperationException当前线程未与调度程序相关联。在触发渲染或组件状态时使用InvokeAsync()将执行切换到调度程序。
将此更改为
调用
await Task.Run(StateHasChanged)
而不是await InvokeAsync(StateHasChanged)
,我想知道这是否是有意的。我之所以问,是因为当尝试使用bUnit渲染组件时,
await Task.Run(StateHasChanged);
会给我以下异常:System.InvalidOperationException当前线程未与调度程序相关联。在触发渲染或组件状态时使用InvokeAsync()将执行切换到调度程序。
将此更改为
await InvokeAsync(StateHasChanged);
允许在bUnit中呈现组件。但是,据我所知,无论是使用await Task.Run(StateHasChanged)
还是await InvokeAsync(StateHasChanged)
运行应用程序时,该组件的功能都是相同的。调用
StateHasChanged
这两种方法之间有什么区别?