以下のようなコントローラーがあり、大量のメールを送信します。
public ActionResult Index()
{
ViewBag.Message = "Email Results.";
emailQueue.emailQueueCompleted += EmailsCompleted;
emailQueue.Run();
List<EmailError> emails = new List<EmailError>();
return View(emails);
}
ただし、emailQueue.Run() は、ビューがレンダリングされるまでにまだ完了していない非同期タスクです。続いて完了すると、以下の同じコントローラーでこのメソッドを呼び出します。
public void EmailsCompleted(List<EmailError> errors)
{
if (errors.Count > 0)
{
// Do some stuff
// Re-render view with updated errors if possible
}
}
とにかく私の質問は、電子メール キューがタスクを完了した後に更新されたエラーのリストを取得したら、このコントローラーでビューを簡単に再レンダリングできるかということです。または、最初にビューをレンダリングしようとする前に、電子メールが完了するのを待つ必要があります (これはかなり長いプロセスになる可能性があることに注意してください)。MVC は通常、私が掘り下げたいと思っている分野ではないため、提案はいつでも大歓迎です。