2010-02-05 12 views
0

我有一个ASP.NET MVC应用程序,而在其中一个控制器中,我有两个长时间运行的操作。我想要并行执行它们。首先,我只是通过在退出控制器之前新建一个System.Threading.Thread()对象,在后台运行它以及thread.Join()来实现自己的多线程代码。工作很好。我应该使用PageAsyncTask还是手动线程化在ASP.NET MVC控制器中进行并行操作

一位同事指着我在System.Web.UI.PageAsyncTask类。它看起来简单直接,并且事件驱动,但它似乎也会起作用。

任何令人信服的理由选择PageAsyncTask通过一个简单的线程?

谢谢!

-Mike

回答

2

PageAsyncTask不应该在MVC应用程序中使用。 MVC 2有一个AsyncController class,可以用于此目的。但是,如果您的操作非常简单,并且手动线程正在为您工作,那么您可能很好地坚持使用当前的实现。

+0

请问您能再详细一点吗?为什么不应该在MVC中使用PageAsyncTask? – Mike 2010-02-08 13:45:12

+0

PageAsyncTask类型与Page类紧密相关(特别是,Page.RegisterAsyncTask()方法)。这些踢这些任务的代码路径并不保证在MVC请求的生命周期中被正确调用。实质上,页面应严格用作MVC视图的哑模板系统。 – Levi 2010-02-08 19:16:41

相关问题