如何超时任务,但记录任务实际花了多长时间?

时间:2012-11-02 10:00:07

标签: .net web-services task-parallel-library

我有第三方网络服务,我提出请求。如果请求的时间超过6秒,我会放弃结果。

我想做的是进行服务调用,如果超时并返回超过6秒,但是当服务调用实际返回结果,或者底层连接超时时我想记录如何这个电话会花很长时间。

动机是我目前在6秒时超时,我知道一定比例的通话超时。我想要的是一些关于通话需要多长时间的数据,甚至是过去6秒的数据。可能是因为如果我将超时时间增加到7秒,那么我会更频繁地超时,但是没有数据我不知道。

我在C#工作,我可以用Task<T>做些什么,还是我需要建立一些更定制的东西?

1 个答案:

答案 0 :(得分:1)

一种选择是:

  • 首先,ContinueWith执行日志任务
  • 然后,使用Task.WhenAny(task,Task.Delay)进行超时