2022/06/04(Sat) 09:25:10 編集(投稿者)
> @では準備未完了の場合にエラーになるのがデメリットになると思います
> Aにデメリットのようなものがないのか疑問に思いました
>
> もし何か既知の事柄があれば、教えていただきたいです
ん?どっちも準備未完了ならエラーになるよ。
>Async Sub InitializeAsync()
> Await WebView2.EnsureCoreWebView2Async(Nothing)
>End Sub
これじゃ足りなくて
Try
Dim cacheFolderPath As String = ""
Dim webView2Environment As Microsoft.Web.WebView2.Core.CoreWebView2Environment
'----- WebView2のキャッシュフォルダ指定(書き込み可能パス)
cacheFolderPath = "WebView2のキャッシュフォルダのパス"
Try
webView2Environment = Await Microsoft.Web.WebView2.Core.CoreWebView2Environment.CreateAsync(Nothing, cacheFolderPath)
Catch ex As Exception
Startup.ExceptionHandling(ex, "キャッシュフォルダ[" & cacheFolderPath & "]にアクセスできませんでした。")
Return True
End Try
Try
'----- WebView2の初期化の完了を待つ(エラー回避)
Await Me.WebView2.EnsureCoreWebView2Async(webView2Environment)
'----- シグナル設定(別処理で初期化の完了を判定する為の処理)
IsInitializationCompleted = True
If condition.CurrentCount > 0 Then
condition.Signal()
End If
Catch ex As Exception
'----- 処理実行前にフォームが閉じられるとエラーとなる。
Return True
End Try
Return False
Catch ex As Exception
Return True
End Try
これぐらい必要でさらに
CoreWebView2_InitializationCompleted
でイベントの追加とかしないといけないから。
さすがに全部は書けないのであとは調べてね