代码之家  ›  专栏  ›  技术社区  ›  Athari

thread.start(webrequest.getresponse)与webrequest.begingeresponse

  •  2
  • Athari  · 技术社区  · 14 年前

    我想下载一个文件,同时在用户界面上显示下载正在进行中。用 WebRequest 我有两个选择:

    1. 使用 WebRequest.BeginGetResponse 以及相关方法。

      优点:可以以字节显示确切的进度。

      缺点:需要编写更多的代码。因为同步和异步方法不混合,所以我需要使用 BeginGetResponse , BeginRead , BeginGetRequestStream . 要手动实现的更多内容,包括读取缓冲区、超时。

    2. 启动新线程(或使用线程池),使用 WebRequest.GetResponse 以及相关方法。

      优点:没有不必要的代码。

      缺点:无法显示确切的进展。

    由于要下载的文件非常小,以字节显示进度是优势,但不是关键。如果我使用第二种方法,功能方面和性能方面的方法,我会错过什么吗?

    或者可能有一个更高层次的广泛使用的包装我错过了?( WebClient 不暴露 小精灵 的属性,因此它对我不可用,因为我需要使用cookies等。)

    1 回复  |  直到 14 年前
        1
  •  4
  •   Albin Sunnanbo    14 年前

    WebRequest.BeginGetResponse