我必须设计和实现一种方法来处理客户端/服务器应用程序中长时间运行的进程。一个典型的长时间运行的过程将/可能需要 2-3 分钟。同时我还需要向 UI 报告进度并保持 UI 响应。
考虑到这些,我想到了一些解决方案:
一个异步请求启动进程,该进程启动服务器端进程并返回分配的 LRPID(长期运行进程 ID),然后使用该 LRPID 从客户端定期轮询。(优点:易于部署,没有防火墙干扰Con:不优雅,资源消耗等)
使用双工绑定(例如 NetTcpBinding)并在取得进展时从服务器发起回调(Pro:优雅、高效,Con:部署噩梦)
【你的建议???】
您对此有何看法?