【发布时间】:2010-04-28 16:04:22
【问题描述】:
这是我在控制器操作中所做的:
- 创建并启动一个新线程,该线程执行相对较长的处理任务(平均约 30 秒,但可能需要几分钟)
- 立即返回页面响应,以便用户知道处理已经开始(简单来说,一个带有任务 ID 的 Json 用于轮询)。
在某个随机点,会抛出 ThreadAbortException,因此异步任务不会完成。异常不会每次都抛出,它只是随机发生,大约有 25% 的时间。
注意事项:
- 我没有调用 Response.End 或 Response.Redirect - 抛出异常时甚至没有运行请求
- 我尝试使用 ThreadPool 并得到相同的行为
- 我知道在 ASP.NET 中运行线程有几个注意事项,但我现在不在乎
有什么建议吗?
【问题讨论】:
标签: asp.net-mvc exception multithreading