0

リクエストするサードパーティのWebサービスがあります。リクエストに6秒以上かかる場合は、結果をあきらめます。

私がやりたいのは、6秒以上のタイムアウトとリターンが必要な場合にサービスコールを行うことですが、サービスコールが実際に結果を返すとき、または基になる接続がタイムアウトしたときに、コールの時間をログに記録したいと思います取ったでしょう。

その動機は、現在6秒でタイムアウトし、呼び出しの一部がタイムアウトすることを知っていることです。私が欲しいのは、6秒を過ぎたものでさえ、通常の呼び出しにかかる時間に関するデータです。タイムアウトを7秒に増やすと、タイムアウトの頻度ははるかに少なくなりますが、データがないとわかりません。

私はC#で作業していますが、何かできることはありますか、Task<T>それとももっとオーダーメイドの何かを構築する必要がありますか?

4

1 に答える 1

1

1つのオプションは次のとおりです。

  • まず、ログを実行するタスクでContinueWithを実行します
  • 次に、タイムアウトにTask.WhenAny(task、Task.Delay)を使用します
于 2012-11-02T12:29:04.717 に答える