I'm using a nuget package that allows interaction with UptimeRobot monitoring service. Unfortunately this package doesn't seem to have a timeout set when using the service therefore the awaitable task goes forever. So I need to do it myself.
And I came up with this:
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;
}
It seems like it should work but it never throws that exception. Why?
 
    