我有一个C#-Api-Function需要几分钟才能执行,我想向用户报告进度(如果他留在页面上)。
网站使用angularjs运行。
我可以启动c#-function asynch但是如何重复报告我的进度而不只是一次?
答案 0 :(得分:0)
有许多方法可以给猫皮肤,但需要考虑的一个方法:
在长时间运行的方法中,将进度记录到数据库(如果你感觉很顽皮,则记录静态变量)。然后有另一个API处理程序,它将查询数据库的进度并返回它。在客户端,设置一个计时器,用于查询进度处理程序,并更新模型。
此外,您不应该拥有在Web API中返回需要很长时间的方法。考虑将逻辑移动到Windows服务,或者至少使请求处理程序异步。