0

以前の ThreadPool.QueueUserWorker アイテムの使用の代わりに async await を使用するように Xamarin.Android アプリを切り替えたところ、メトリックはありませんが、より高速であることがわかりました。Xamarin Android のこの新しいビルドには明らかに他の最適化がある可能性がありますが、C# の観点 (.NET 4.5) から興味がありますが、実際に Task.Run はオンデマンドでタスクを開始し、スレッド プールをキューに入れていないため、より高速でしょうか?

async await が ThreadPool.QueueUserWorkerItem の実装よりも高速であるという情報を持っている人はいますか?

4

1 に答える 1

4

いいえ、遅くなります。

QUWI非常に低レベルの呼び出しです。Task.Run少なくとも を作成してTaskからキューに入れる必要があります (これは に似ていますQUWI)。

あなたのテスト コードは、マイクロ ベンチマークの多くの 落とし穴の 1 つに陥っているのではないかと思います。

于 2013-07-03T15:30:31.250 に答える