Async および Await キーワードの使用は、MS との最近の conf で推奨されています。コードが実行される新しいスレッドにまたがる Await キーワードを使用すると、Asp.net ワーカー スレッドはどうなりますか。リクエストが完了するのを待ちますか、それとも他のリクエストを処理し続けますか。
1849 次
1 に答える
5
await
新しいスレッドを生成しません。async
/ await
introの投稿またはasync
/ await
FAQを参照してください。
ただし、必要に応じて明示的に を呼び出すことで、新しいタスクを生成できTask.Run
ます。
を呼び出したときにawait
、待っているオブジェクトがまだ完了していない場合はawait
、メソッドの残りの部分を後で実行するようにスケジュールしasync
、現在のスレッドがスレッド プールに返されます。非同期操作の進行中async
または進行中は、スレッドは使用されません。await
非同期操作が完了すると、async
メソッドの残りの部分がスレッド プール スレッドで実行されます (開始したスレッドと同じスレッドである場合と異なる場合があります)。async
一般的なケース (1) では、メソッドは正しい要求コンテキストで再開されるため、これは通常は問題になりません。
(1) 一般的なケースは、 orを直接await
待っている場合です。Task
Task<TResult>
于 2012-07-24T15:30:31.267 に答える