コントローラーメソッドで非同期の結果を待つにはどうすればよいでしょうか? 実装するのは簡単なように思えますが、これまでのところ、クリーンでエレガントな良い例は見つかりませんでした.
これが問題です。私は2つのコントローラーメソッドを持っています。メソッド A とメソッド B。メソッド A は、TaskFactory を介して実行時間の長いプロセスを開始し、プロセスの終了時に ContinueWith を使用してキャッシュされた値を更新します。A と B の間にはいくつかの中間ステップがあります。メソッド B に到達したら、キャッシュ内の値を確認する必要があります。キャッシュ内の値がまだ更新されていない場合は、x 秒待機し、値が更新されているかどうかを定期的に確認する必要があります。
クライアントが結果をポーリングする必要がないように、これらすべてをコントローラーで処理することをお勧めします (そして、ポーリングを処理するためにコントローラーを書き直す必要があります)。しかし、タイムアウトが期限切れになるまでブロックしないコントローラーメソッド内にポーリングを実装する方法を見つけることができませんでした(スレッドプールの枯渇が心配です)。ここで使用できるクリーンな実装がない可能性があります。そして、世論調査が正しい、または唯一の答えである場合、私はそれを受け入れるしかありません。