如何调用另一个控制器动作异步?

时间:2011-06-30 15:45:16

标签: c# email asp.net-mvc-3 asynchronous actionmailer

我正在使用ActionMailer.net从我的MVC网站发送电子邮件,问题是发送电子邮件几次需要几秒钟,这会延迟我的ajax电话。

我尝试使用DeliverAsync(),但仍然存在相同的延迟,我将ActionMailer控制器操作称为:

new EmailController().EntryEmail(CurrentUser, CurrentUser, postText).DeliverAsync();

所以我的问题是,有没有办法在另一个线程或异步中调用相同的Action。

注意:
我试图使ActionMailer控制器继承自AsyncController,但不能,因为它已经从另一个类继承。

另外作为参考我之前问过这个问题:Is it fine to send email from another thread like this?

1 个答案:

答案 0 :(得分:0)

为什么不创建一个继承自AsyncController的新基类?

对于简单的火灾而忘记你可以使用ThreadPool.QueueUserWorkItem

就个人而言,我更喜欢对电子邮件进行排队,并且有一个单独的后台线程来处理队列。这可以像数据库中的“电子邮件”表和System.Threading.Timer

一样简单