如何调用另一个控制器操作async

本文关键字:另一个 控制器 操作 async 调用 何调用 | 更新日期: 2023-09-27 18:00:52

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

我尝试使用DeliverAsync(),但同样的延迟仍然存在,我调用ActionMailer控制器操作如下:

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

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

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

同样为了参考,我之前问过这个问题:从另一个线程发送这样的电子邮件可以吗?

如何调用另一个控制器操作async

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

对于一个简单的火灾和遗忘,您可以使用ThreadPool.QueueUserWorkItem

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