WPFアプリケーションでのtask.run and async-awaitの選択:アーキテクチャの考慮事項
WPFアプリケーションでは、Task.runまたはAsync-Waitを使用することを選択します。特にUIに屋台がある場合は、一般的な問題です。この問題を解決するには、次の要因を考慮する必要があります。
Async-awaitは、背景スレッドでは実行されません。待機操作がCPU集約型タスクである場合、UIが立ち往生する可能性があります。これを防ぐには、task.runを使用して、そのようなタスクをバックグラウンドスレッドに委ねます。2。スレッド効率最適化:
タスクを使用して、最も外側の非同期呼び出しをパッケージ化して、.NETのスレッドオーバーヘッドを減らします。これにより、コール内の後続のすべての非アウェイ操作がバックグラウンドスレッドで実行されることが保証されます。再利用可能なコードでtask.runを使用しないでください。代わりに、task.runを使用してCPU集約型メソッドを呼び出し、メソッド署名にCPU集約的特性を明確に説明します。この分離により、バックグラウンドスレッドの効率に影響を与えることなく、コンポーネントを柔軟に再利用できます。 uiスレッド最適化ベストプラクティス:
task.runを慎重に使用することに加えて、次の基準に従って迅速なUIスレッドを維持します。
ブロックを避けるために、UIスレッド操作を50ミリ秒以内に保ちます。
1秒あたり約100回のUIスレッドの継続を制限します。configureawait(false)を使用して、UIスレッドでの操作を復元するときにパフォーマンスを最適化します。
これらの原則を観察することにより、UIの応答能力に影響を与えることなく、CPU密度操作をバックグラウンドスレッドに効果的に割り当てることができます。
以上がWPFのtask.run vs. async-wait:最適なUIパフォーマンスにいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。