【问题标题】:WebService with progress bar带进度条的 WebService
【发布时间】:2012-03-31 04:41:00
【问题描述】:

编写一个客户端应用程序,通过网络服务将图像发送到服务器。由于数据量可能很大,我需要一个显示进度的进度条。有人可以为我指出如何连接到 web 服务的正确方向,以便我可以在客户端中显示进度。

【问题讨论】:

    标签: c# web-services


    【解决方案1】:

    当您必须发送大量数据而您没有线程时,获取进度条的一种简单方法是将数据分成较小的块,然后逐个发送,这样您就知道进度了,当然,服务必须能够在之后将各个部分连接在一起。

    【讨论】:

    • 不幸的是我没有这种可能性
    • 除非网络服务器为您提供有关进度的某种信息,并且您可以运行后台线程来上传它,否则我不确定这怎么可能,也许更多信息关于您正在使用的服务会很有用
    【解决方案2】:

    一个想法如下:

    1. 正常调用 Web 服务。
    2. Web 服务立即返回并提供唯一标识符(例如,id 或 GUID)。 Web 服务继续处理请求(异步)。有时,它会使用进度更新来更新状态位置(例如 DB 字段)。
    3. 客户端调用提供标识符作为参数的第二个 Web 服务。然后,第二个 Web 服务提供当前状态。其中一条状态消息是“完成”。
    4. 客户端继续轮询状态更新,直到返回“完成”消息。
    5. 收到“完成”消息后,客户端将调用第三个 Web 服务来检索最终结果(提供标识符)。

    【讨论】:

      【解决方案3】:

      其中一种可能的方法是将文件分成更小的块,通过单独的服务调用逐块上传它们,这样您就可以显示进度。

      一个小缺点是,当最后一个块到达那里时,您必须将所有块放入服务器端的大文件中。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-05-20
        • 1970-01-01
        • 1970-01-01
        • 2023-03-03
        • 2023-02-23
        • 2017-07-27
        • 1970-01-01
        相关资源
        最近更新 更多