回答編集履歴
2
表現をわかりやすく変更
test
CHANGED
@@ -150,7 +150,7 @@
|
|
150
150
|
|
151
151
|
上記の例でも、`await`以降の処理がスレッド4に移されていることがわかります。
|
152
152
|
|
153
|
-
- 呼び出し元のスレッドが同期コンテキスト(≒メッセージループ)を持っており、かつ`await`時
|
153
|
+
- 呼び出し元のスレッドが同期コンテキスト(≒メッセージループ)を持っており、かつ`await`時に`ConfigureAwait(false)`を**設定していない**場合、呼び出し元スレッドで実行します。例えばWin32であればメッセージキューに`await`以降の処理を積み直すということをします。
|
154
154
|
|
155
155
|
この場合、例のように`.Wait()`すると、メッセージループをブロックしたまま後続メッセージを待機するという処理になってしまい、結果デッドロックを生じます。
|
156
156
|
|
1
表記ゆれの校正
test
CHANGED
@@ -142,7 +142,7 @@
|
|
142
142
|
|
143
143
|
|
144
144
|
|
145
|
-
さて、`await`以降の処理がFuture化され
|
145
|
+
さて、`await`以降の処理がFuture化され別スレッドで実行されると言いましたが、ここで使われるスレッドは実は条件次第で異なります。
|
146
146
|
|
147
147
|
|
148
148
|
|