使用MVC3 AJAX调用线程或任务 我有一个MVC3项目,具有.NET 4.5(由于各种原因,我们无法升级到MVC4)。我需要运行三个数据库查询,每个查询需要几秒钟才能填充三组DAT ...

问题描述 投票:0回答:0
以下简单的方法正常工作,但是我敢肯定这不是正确的方法 - 我读了很多人在谈论ASP.NET如何对线程处理挑剔,尤其是当您开始使用很多线程时。

async Task<JsonResult>

为了正确使用ThreadPool或我应该考虑的其他任何线程技术,我需要更改什么,并确保我正确关闭了问题?该站点通常只有几十个并发用户,每当他们加载页面时,都会进行此调用 - 因此,这不是大量的线程。

我还会添加异常处理以确保任何内容都没有爆炸。

为了正确使用ThreadPool或我应该考虑的其他任何线程技术,我需要进行什么更改,并确保我正确关闭东西?
它取决于

.

您的当前代码不会从线程池重复使用线程,也可能是线程恒星引起500(ASP.NET请求处理而停滞了,因为CLR线程池不含线程)。 提出一个新线程的性能罚款很小(这就是为什么线程池首先存在),但是对于高遍历高且高的并发网站,这是一个不错的选择。 也就是说,如果您的网站为低遍及少的并发用户群提供服务,我认为它会杀死。使用

await Task.WhenAll(tasks)

的眼睛(意见)要容易得多。  这将在线程池中使用线程,但是除非您在单核机上运行网站,否则我怀疑任何人都会注意到。
线程模型的外部,还有更多的aarchitectural
减少数据库命中的方法,但是您的问题是如此具体,我没有太多建议而不了解更多。

c# multithreading asp.net-mvc-3
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.