public ActionResult Index()
{
BackgroundWorker bw = new BackgroundWorker();
bw.DoWork += new DoWorkEventHandler(Domail);
bw.RunWorkerAsync();
Return View();
}
private void Domail(object sender, DoWorkEventArgs e)
{
MyStaticClassToSendMail.MailIt();
}
我計劃在我的MVC控制器上面的紋路,的BackgroundWorker在MVC模式
語法object sender, DoWorkEventArgs e
提醒老ASP.NET Web應用程序的我。
所以我在這裏的問題是:做這個打破任何模式?在MVC中做合法嗎?
當你有一個smtp故障時,這可能會阻止很長一段時間。您是否嘗試過使用AsyncController併爲郵件客戶端使用異步調用?這樣,您可以更輕鬆地爲異步操作定義超時並處理直接發送的結果。 – Silvermind
在MVC中這不是非法的,但它應該是。 Backgroundworker被設計爲與Dispatcher合作,MVC中沒有。 –