我目前使用这种方法很慢,它完美的作品:的Process.Start是
public static void CreateEmailInDefaultMailEditor(string to, string subject, string body)
{
Process.Start($"mailto:{to}?subject={subject}&body={body}");
}
然后我尝试了另一台计算机上和它的工作也有,但它是非常缓慢的(更是一分钟打开我的邮件编辑器!)。
我调试了Process.Start
(在System.dll中)方法,发现问题在于运行非常缓慢的NativeMethod.ShellExecuteEx
方法。
我也注意到,指定应打开发送电子邮件
public static void CreateEmailInOutlook(string to, string subject, string body)
{
Process.Start("outlook.exe", $"mailto:{to}?subject={subject}&body={body}");
}
程序的名称可以解决问题,但不并解释为什么它在电脑上正常工作,而不是在其他它不会做同样的事情:不指定程序会自动打开默认的程序。
所以问题很简单:为什么这种行为以及如何解决它?
倾向于给反恶意软件一个伟大的。所以暂时禁用它,然后再试一次,看看它是不是罪魁祸首。 –
与汉斯达成协议后,手动启动任何安装AV的Outlook需要一段时间。特别是如果你有插入到Outlook中的插件。 –
没有指定程序,* shell *必须在注册表中找到合适的程序。那里可能会有不一致,从而导致速度减慢。 – MrPaulch