为了账号安全,请及时绑定邮箱和手机立即绑定

设置webClient.DownloadFile()的超时

设置webClient.DownloadFile()的超时

叮当猫咪 2019-07-26 16:50:44
设置webClient.DownloadFile()的超时我正在使用webClient.DownloadFile()下载文件,我可以为此设置超时,这样如果它无法访问文件就不会花这么长时间吗?
查看完整描述

3 回答

?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

试试WebClient.DownloadFileAsync()。您可以CancelAsync()通过计时器调用自己的超时。


查看完整回答
反对 回复 2019-07-26
?
HUX布斯

TA贡献1876条经验 获得超6个赞

假设您想要同步执行此操作,使用WebClient.OpenRead(...)方法并在它返回的Stream上设置超时将为您提供所需的结果:

using (var webClient = new WebClient())using (var stream = webClient.OpenRead(streamingUri)){
     if (stream != null)
     {
          stream.ReadTimeout = Timeout.Infinite;
          using (var reader = new StreamReader(stream, Encoding.UTF8, false))
          {
               string line;
               while ((line = reader.ReadLine()) != null)
               {
                    if (line != String.Empty)
                    {
                        Console.WriteLine("Count {0}", count++);
                    }
                    Console.WriteLine(line);
               }
          }
     }}

从WebClient派生并重写GetWebRequest(...)以设置建议的超时@Beniamin,对我来说不起作用,但是这样做了。


查看完整回答
反对 回复 2019-07-26
  • 3 回答
  • 0 关注
  • 1712 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信