web-dev-qa-db-ja.com

.NET Task.Resultはスレッドを(同期的に)ブロックしますか?

Task.Result synchronouslyは現在のスレッドをブロックして、タスクの完了を待機している間は他の操作を実行できないようにしますか?

たとえば、ASP.NET実行パスでTask.Resultを呼び出すと、現在のスレッドは、結果を待っている間、他の要求を処理するために使用できません。

ちなみに、C#5.0のasyncはどうですか? await asyncメソッドは現在のスレッドをブロックしますか?

コメントありがとうございます。

13
Ricky

MSDN: https://msdn.Microsoft.com/en-us/library/dd321468(v = vs.110).aspx

プロパティのgetアクセサーにアクセスすると、非同期操作が完了するまで呼び出しスレッドがブロックされます。これは、Waitメソッドを呼び出すことと同じです。

MSDN: https://msdn.Microsoft.com/en-us/library/hh156528.aspx

Await式は、それが実行されているスレッドをブロックしません

14
Lanorkin