3

CPU を集中的に使用するコードを UI スレッドからオフロードして、それをタスクに入れてスレッド プールで実行することにした場合、このコード自体に「await」キーワードを使用するメリットはありますか?

答えは「いいえ」のようです..

つまり、UI スレッドでタスクを待機する主な理由の 1 つは、UI スレッドを解放して以前に行っていたことを実行できるようにすることです。スレッド プールで実行中にタスクとして待機する場合、そのスレッドを解放して何をするのでしょうか?

本当に明らかな何かが欠けていますか?

4

1 に答える 1

3

CPU を集中的に使用するコードを UI スレッドからオフロードして、それをタスクに入れてスレッド プールで実行することにした場合、このコード自体に「await」キーワードを使用するメリットはありますか?

CPU を集中的に使用するタスクのためだけですか? そうでないかもしれない。

しかし、スレッド プール スレッドでコードを実行する理由はそれだけではありません。

Web サーバーを考えてみましょう。すべての要求はスレッド プール スレッドで処理されます。awaitこれらの要求を処理している間 (たとえば、データベースや他の Web サービスの応答を待っている間) を使用すると、非常に少数のスレッドで数百万の要求を処理できます。

さらに、リッチ GUI のシナリオでも、実行時間の長いタスクをスレッド プール スレッドに置き、そのスレッドから複数の非同期要求を起動したい場合があります。async/await が非同期操作の構成を促進する方法により、実行するスレッドに関係なく、非同期の方法でコードを記述することが完全に合理的になります。

于 2012-08-03T20:52:34.660 に答える