我正在使用一个允许与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;
}
它似乎应该可以工作,但它永远不会抛出异常。为什么呢?