设置异步操作的超时

时间:2016-03-05 05:51:08

标签: c# async-await

我正在使用一个允许与UptimeRobot监控服务进行交互的nuget包。不幸的是,这个包在使用服务时似乎没有设置超时,因此awaitable任务永远存在。所以我需要自己做。

我想出了这个:

List<Monitor> monitors = null;

int timeOut = 8000; // 8 seconds
var task = Task.Factory.StartNew (async () => await _client.GetMonitors ());

if(!task.Wait (timeOut))
{
    throw new Exception ();
}
else
{
    monitors = await task.Result;
}

它似乎应该可以工作,但它永远不会抛出异常。为什么呢?

0 个答案:

没有答案