如何在asp.net mvc 2中运行异步代码?

时间:2010-06-08 10:07:57

标签: asp.net-mvc-2

我试过了:

    BackgroundWorker bw = new BackgroundWorker();

    bw.DoWork += (o, e) =>
    {
        SendConfEmail();
    };

   bw.RunWorkerAsync();

但它不起作用。 SendConfEmail需要一段时间才能运行。我想这是因为BackgroundWorker是为winforms而不是webforms设计的。

我有什么想法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:1)

等待后台线程在请求​​中排队在CPU上将是毫无意义的。您可能应该从所有线程对您的电子邮件进行排队,并从单独的进程或从global.asax中生成的专用线程中为它们提供服务。

答案 1 :(得分:0)

我最终通过使用AsyncCallback对象解决了它。

集中邮件服务器解决方案将是理想的,但该项目是时间关键的概念证明,必须在短短五天内完成。