In my case (need to update UI in the middle of long-running server method):
StateHasChanged(); Not working
StateHasChanged();
await InvokeAsync(StateHasChanged); Not working
await InvokeAsync(StateHasChanged);
StateHasChanged(); await Task.Yield(); Working
StateHasChanged(); await Task.Yield();