【发布时间】:2012-07-14 17:26:11
【问题描述】:
如何在控制器方法中执行异步方法并返回 HttpStatusCodeResult(200),而异步委托不会过早终止其执行?
我正在开发一个 asp.net 应用程序,我的家庭控制器需要很长时间才能运行(10-30 秒)。我想返回一个 HttpStatusCodeResult(200) 并继续运行我的函数。 functoin 不需要返回任何东西,但它仍然不是真正的火灾和忘记的情况,因为我立即使用 HttpStatusCodeResult 向服务器返回响应。
我尝试使用委托,但似乎一旦我从操作返回状态代码,委托就会停止执行。另一种选择是创建 Windows 服务,但这就像使用火箭筒杀死苍蝇一样。我收到的请求很少,所以资源和性能对我来说不是问题。我听说ThreadPool.QueueUserWorkItem 是一个选项,但哪个最适合我的情况?
【问题讨论】:
-
但我认为它只会优化线程池的使用,我的意思是我无法返回 httpstatus 代码并继续执行,请检查 Converting Synchronous Action Methods to Asynchronous Action Methods 部分
标签: asp.net asp.net-mvc threadpool