c# - ASP.NET MVC 的异步 Controller 与多线程

标签 c# multithreading asp.net-mvc-4 asynchronous

我一直在尝试了解何时最好使用异步 Controller 与在单独的线程中处理任务。

根据研究,我认为当有多个任务需要完成并且在某个时候涉及资源的单点入口时,最好使用异步。因此,asp.net MVC 的好处是返回池线程,以便 UI 可以处理其他 UI 事件,而其他线程在将其信息克隆回池线程之前继续其处理。

现在假设这个任务是从服务器上下载一个文件。创建我自己的线程来产生并处理这个操作是否会降低效率?

通过多线程我可以处理数据并发,这是如何使用异步 Controller 完成的?

在 ASP.NET MVC 中有哪些我应该使用异步 Controller 与我自己的线程的示例?

我是 ASP.NET MVC 的新手,并且试图更好地理解这个概念,因为我已经详尽地搜索了互联网并且无法明确区分两者(对于 ASP.NET MVC)。

最佳答案

只有当您发送回 View 的结果不依赖于线程的操作时,创建线程才有用。或者换句话说,当涉及耗时的处理而 View 不需要关闭数据时,线程很有用。

我遇到的一个潜在陷阱是,如果您的 Controller 正在使用 session 数据,IIS 将阻止后续的 AJAX 调用,直到它被处理。 Why would multiple simultaneous AJAX calls to the same ASP.NET MVC action cause the browser to block?

关于c# - ASP.NET MVC 的异步 Controller 与多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30738282/

相关文章:

database - 在 Entity Framework 5 中创建新对象时如何生成唯一的 GUID?

c# - 创建现有 c# 类的扩展 'copy'

c# - Multi-Tenancy 自定义 ILogger - 无法使用来自单例的范围服务

c++ - 在基类中调用真正的虚函数

java - 可运行对象与方法引用和垃圾

javascript - 强制清除Chrome缓存

c# - 在浏览器中与称重秤进行串行/并行通信

c# - 保证变量的最新值始终对多处理器系统上的多个线程可见

c# - mshtml.HTMLDocument 如何隐藏具有类属性的动态创建的 div

java - 自动编译线程类中的类。请解释