【发布时间】:2015-12-15 14:44:08
【问题描述】:
我有以下代码:
public static string createRequest(string url, int timeout = 1)
{
Task<string> responseString;
using (var client = new System.Net.Http.HttpClient())
{
responseString = client.GetStringAsync(url);
responseString.Wait(new TimeSpan(0, 0, timeout));
}
}
如果我第一次在调试器中运行此代码,超时只会在很长一段时间(1-2 分钟)后发生。第二次运行速度更快,大约 3-4 秒后完成。
如果我在此调用之后在某些代码上设置断点,它有时会运行得更快,但主要是需要很长时间。
为什么即使有定义的超时,代码也需要这么长的时间跨度?
事实上 responseString.Status 是 TaskStatus.Canceled 这正是我所期望的(没有设备绑定到此 IP)。
这段代码有什么问题?谢谢你:)
【问题讨论】:
-
Wait的返回值是多少? -
嗯..添加一个保存返回值的变量会导致超时工作?!
标签: c#