настоящее время я использую этот метод, и он прекрасно работает:Process.Start очень медленно
public static void CreateEmailInDefaultMailEditor(string to, string subject, string body)
{
Process.Start($"mailto:{to}?subject={subject}&body={body}");
}
Затем я попробовал его на другом компьютере, и его также работает там, но это очень медленно (более, что одна минута, чтобы откройте мой почтовый редактор!).
Я отладил метод Process.Start
(in 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. –
Без указания программы, * shell * должен найти соответствующий в реестре. Там могут быть несоответствия, которые замедляют работу. – MrPaulch