Written By: 川俣 晶
Blazor Serverのアプリで画面が更新されない。
全く同じソースをBlazor Web Asssemblyに持っていくと更新される。
マルチスレッドの動作が互換ではないから。
Blazorにも別スレッドからの画面更新要求は受理できない制約があり、Blazor Serverではこの条件に当てはまる可能性がある。
一方で、Blazor Web Asssemblyではマルチスレッドはまだ使えない。Taskは実行権が空いたときだけ実行されるチャンスがあるが常に同じスレッドで実行されるので、別スレッドからの画面更新要求は発生しない。
InvokeAsyncメソッドを使って、メインスレッドで画面更新要求(StateHasChanged呼び出し)を行う。
(InvokeAsyncメソッドはBlazor Web Asssemblyでも動作するので、これを使っておけば安全である。ただし、InvokeAsyncの動作をブロックするとハングする可能性がある。awaitを使っておけばたぶん安全)
[メッセージ送信フォームを利用する]
メッセージ送信フォームを利用することで、川俣 晶に対してメッセージを送ることができます。
この機能は、100%確実に川俣 晶へメッセージを伝達するものではなく、また、確実に川俣 晶よりの返事を得られるものではないことにご注意ください。
管理者: 川俣 晶
Powered by MagSite2 Version 0.36 (Alpha-Test) Copyright (c) 2004-2021 Pie Dey.Co.,Ltd.