如何调用另一个控制器操作async
本文关键字:另一个 控制器 操作 async 调用 何调用 | 更新日期: 2023-09-27 18:00:52
我使用ActionMailer.net从我的MVC网站发送电子邮件,问题是有时发送电子邮件需要几秒钟,这会延迟我的ajax调用。
我尝试使用DeliverAsync()
,但同样的延迟仍然存在,我调用ActionMailer控制器操作如下:
new EmailController().EntryEmail(CurrentUser, CurrentUser, postText).DeliverAsync();
所以我的问题是,有没有一种方法可以在另一个线程或异步中调用相同的Action。
备注:
我试图让ActionMailer控制器从AsyncController
继承,但不能,因为它已经从另一个类继承了。
同样为了参考,我之前问过这个问题:从另一个线程发送这样的电子邮件可以吗?
为什么不创建一个从AsyncController继承的新基类?
对于一个简单的火灾和遗忘,您可以使用ThreadPool.QueueUserWorkItem
。
就我个人而言,我更喜欢对电子邮件进行排队,并有一个单独的后台线程来处理队列。这可以像数据库中的"电子邮件"表和System.Threading.Timer
一样简单