我实现异步下载以检索远程文件并将其存储在IsolatedStorage中,以便在离开网络时使用它。
网络启动时,一切都很有效。但是当我离开网络时,我注意到async donwload可能需要2分钟才能激活我的MessageBox(这说明与服务器的连接失败了)。
问题: 有没有办法定义超时?假设我的应用程序在X秒内没有收到任何答案,那么请停止异步下载并调用方法。
也许暂停不是最好的实践。在这种情况下你能给我一些建议吗? 我不希望我的用户最多等待15秒。
PS:我的应用程序假设只在wifi上运行,所以我认为'网络速度'是最佳的。
感谢您的帮助
答案 0 :(得分:2)
我建议您首先通过NetworkInterface检查网络类型。如果NetworkInterfaceType为Wireless80211
,则表示您具有无线连接(Wi-Fi)。如果没有可用的连接方式,返回的连接可以是None
- 因此,如果没有可访问的网络,您甚至不必开始下载。
回答您的问题,如果您使用WebClient
,则无法定义超时。但是,您可以致电instance.CancelAsync()
。对于HttpWebRequest
,您可以致电instance.Abort()
。