我对运行较长的流程很感兴趣,我想在结果开始出现时立即更新 UI,而不是等待它完成。
我该怎么做?我读过有关异步 Controller 的信息,但它们似乎没有为此目的内置任何内容。
只是在结果进入时将结果保存在 Application/Session 对象中并从客户端使用轮询?我可以想到几种可能出错的方法(比如用户关闭页面,并且对象永远保留在 Application 对象中 - 需要自己管理这些对象的过期,轮询的额外服务器负载等)。
有什么想法吗?
谢谢
最佳答案
我最近试图解决类似的问题(将长时间运行的服务器操作的实时进度报告给客户端),结果是 SignalR非常适合这种情况。
基本上它是一个包装长轮询和 Web 套接字的库,使用(透明地)服务器和客户端上可用的任何内容。
到目前为止,我只有很好的经验。
关于c# - 异步 Controller (MVC),具有 "stops"的长时间运行进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8020204/