ASP.Net中WF和并行性所需的指导

时间:2010-02-02 14:18:38

标签: asp.net workflow parallel-processing

我越是研究几个关于ASP.net的主题,我就越觉得在ASP.net领域(webforms和mvc)中如何以及在哪里正确应用一些东西存在真正的差距。 / p>

工作流基础

我喜欢使用WF;但是,我所读到的一切都是因为每个应用程序域限制的1个工作流托管环境,所以不推荐ASP.Net应用程序使用。现在我还没有看到这些限制发生了哪些变化,但是从旧的.Net 3.0(.netfx)时代起我也找不到任何有关此限制的信息。我一直在寻求建议,将工作流程转化为服务,听起来不错;但是,如果服务过于频繁,会导致一些性能问题吗?在ASP.Net中是否有WF的位置,如果有,在哪里?

并行处理

并行性也是如此。我一直看到/阅读关于执行多线程ASP.Net应用程序的建议是不这样做,因为在IIS的应用程序池中设置了线程池的方式。现在随着.Net 4的出现以及各处的多核处理器,多线程似乎再次成为最热门的话题之一。我喜欢我在4.0中的并行扩展中看到的内容;但是,建议是否仍然没有在ASP.Net中进行,或者是否有一些地方在此时推荐它?

多年前对这两个项目的建议是否仍然有效?它们是否应该在ASP.Net世界中避免使用?

由于

1 个答案:

答案 0 :(得分:4)

多线程在ASP.Net中仍然相当无关 - 原因是你在ASP.Net中编写的任何代码都是为了处理单个请求。在其他类型的应用程序中使用多个线程有两个主要原因:

  • 在另一个线程完成工作时更新UI - 在Web应用程序上,用户在完成整个任务之前不会收到任何内容。
  • 使用所有可用内核提高性能 - 当其他内核忙于处理来自其他用户的请求时,没有多大好处。

工作流程主要是为长时间运行的任务而设计的 - 不要在按钮点击处理程序中的某些简单代码所使用的地方使用它。删除即时响应的要求,简单的队列可以解决大多数潜在的性能问题。我在ASP.Net页面中使用了WF,但如果我需要速度或大量用户,我就不会这样做。