C# 有没有办法加速这种方法?

C# 有没有办法加速这种方法?,c#,winforms,refactoring,email,C#,Winforms,Refactoring,Email,我有两种发送电子邮件的方式。其中一个发送电子邮件“无声”,速度极快,另一个比西伯利亚糖蜜慢。不过,我们需要后者,因为我们希望允许用户添加和/或编辑内容、收件人等 以下是一种快速但现已过时的方法: public static void SendEmail(String Recipients, String Sender, String Subject, String Body,

我有两种发送电子邮件的方式。其中一个发送电子邮件“无声”,速度极快,另一个比西伯利亚糖蜜慢。不过,我们需要后者,因为我们希望允许用户添加和/或编辑内容、收件人等

以下是一种快速但现已过时的方法:

public static void SendEmail(String Recipients,
                 String Sender,
                 String Subject,
                 String Body,
                 String SMTPHost)
{
    try
    {
        var message = new MailMessage();
        string[] recipients = Recipients.Split(';');
        foreach (string recipient in recipients)
        {
            message.To.Add(recipient);
        }
        message.Subject = Subject;
        message.From = new MailAddress(Sender);
        message.Body = Body;
        if (String.IsNullOrWhiteSpace(SMTPHost))
        {
            SMTPHost = "localhost";
        }
        var smtp = new SmtpClient(SMTPHost);
        smtp.Send(message);
    } catch (Exception e)
    {
        log.Error(e, e);
    }
}
…这是一种新的但缓慢的方式:

public static void SendEmail(String Recipients,
                             String Subject,
                 String Body)
{
    System.Diagnostics.Process proc = new System.Diagnostics.Process();
    proc.StartInfo.FileName = string.Format("mailto:{0}?subject={1}&body={2}", Recipients, Subject, Body);
    proc.Start();
}

有没有办法加快后一种调用默认电子邮件客户端的方式(在我们的Outlook中)?

我在寻找一个真正快速的答案。我知道C#是从java衍生出来的,所以下面是java对这个问题的答案


我会继续寻找C#版本,但这将帮助您了解自己的研究需要什么。

为什么需要后者?您还可以设置邮件的内容、收件人。我找不到任何不推荐使用的内容。是的,我是-我们现在希望用户能够在发送邮件之前在Outlook中编辑邮件。另一个选择是一个两步流程,但被否决了(提示他们进行更改,然后将更改传递给第一个方法)。@hometoos:我不是说不推荐的过时;我的意思是,如果Outlook启动缓慢,而不是“预启动”该过程(例如:启动计算机启动/应用程序时),我不确定它是否可以加快。可能还想查看>处理该过程。start()中还包含mailto:信息。