とawait
の違い:なぜResult
を使用して死んだロックを引き起こすのですか? Result
.NETの非同期プログラミングでは、と
コラボレーションマルチタスク処理を許可し、await
は死んだロックを引き起こす可能性があります。 Result
await
Result
await
Result
テストプログラムは、を使用して
CheckStatusTwiceResultTest
Result
CheckStatus()
キーワードは、一時停止方法の実行を許可し、非同期操作が完了した後に実行が再開されます。この例では、HTTP応答を待っているときにキーワードが他のタスクに制御されるため、ランタイム時にはハングしません。 await
同期プログラミングおよび非同期プログラミング
await
拡張法 aCheckStatusAwaitTest
を作成し、非同期委員会を使用して結果を設定します。ただし、返品タスクでawait
を呼び出すことは、実際に同期して非同期操作を実行しています。これが
死んだロックを避けてください
死んだロックを避けるために、非同期操作の取得の結果が常に使用されます。ベストプラクティスは、特にUIスレッドやその他の敏感な環境で実行する場合、タスクにExecuteTaskAsync
を呼び出すことを避けることです。 TaskCompletionSource
Result
CheckStatusTwiceResultTest
コードで実行メソッドを使用します。非同期方法の場合、これは推奨されません。これは、新しいスレッドを割り当てるため、推奨されません。代わりに、.NETフレームワークによって提供される固有の非同期性を使用する必要があり、方法は非同期方法に設定する必要があります。
以上が.NETの非同期プログラミングでの結果と結果:「結果」を使用することはなぜデッドロックにつながるのですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。