Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
VB.NETのタスクとAwaitについて
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30922#CommentId86003
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
ツェナー
 (社会人)
投稿日時
2023/11/17 12:02:03
>元のスレッド側でWaitメソッドやResultメソッドなどで、非同期処理の完了を待機されてしまうと、保存された実行コンテキストで実行を再開しようとしたときにWaitメソッドやResultメソッドの効果で、再開を待たされてしまいます。
>一方はWaitで待っており、他方はそのせいで再開を待たされており、両方が待つ状態となりデッドロックになります。
>ConfigureAwait(False) は、Awaitが元スレッドの実行コンテキストを保存しないようにする効果があります。そのため、非同期処理の完了後、元のスレッドの状態と関係なく実行を再開できます。
デッドロックの起きる理由と、ConfigureAwait(False)がどういうものか、少し分かるようになりました。
参考のMS Learnも見てみます。
とても分かりやすかったです。
ありがとうございました。