C# 使用多线程技术发送电子邮件的更好方法是什么?

C# 使用多线程技术发送电子邮件的更好方法是什么?,c#,asp.net-mvc,asp.net-mvc-3,C#,Asp.net Mvc,Asp.net Mvc 3,目前,我使用简单的SmtpClient发送方法发送电子邮件(没有异步)。发送电子邮件大约需要1分钟以上。所以我的向导告诉我用线程发送电子邮件。我在google上搜索了很多地方,所以我知道有各种各样的线程机制来发送电子邮件。我只想知道哪一个更高效,开销更少 我知道的各种方法有 使用Backgroundworker 使用异步回调 创建新线程并手动管理。(我不想朝这个方向走。) 使用任务 使用SendAsync 使用线程池 我对穿线知之甚少,所以请帮助我。并建议是否有其他有效的方法。如果您使用的库支持

目前,我使用简单的SmtpClient发送方法发送电子邮件(没有异步)。发送电子邮件大约需要1分钟以上。所以我的向导告诉我用线程发送电子邮件。我在google上搜索了很多地方,所以我知道有各种各样的线程机制来发送电子邮件。我只想知道哪一个更高效,开销更少

我知道的各种方法有

  • 使用Backgroundworker
  • 使用异步回调
  • 创建新线程并手动管理。(我不想朝这个方向走。)
  • 使用任务
  • 使用SendAsync
  • 使用线程池

  • 我对穿线知之甚少,所以请帮助我。并建议是否有其他有效的方法。

    如果您使用的库支持
    sendsync
    ,那么您应该使用它。否则,请使用TPL,这是自.NET 4.0起的并发标准:

     Task.Run( () => smtpClient.Send() );
    

    谢谢你的回答。TPL是否可用于.NET 4.0?SendAync是否支持并行处理?该方法的完整签名是什么?例如,对于使用线程获取3种类型数据(使用3 SP)的视图页?所谓“方法签名”,我指的是方法的名称、参数和返回类型(即,
    Task SendAync()
    )。这是怎么一回事?