2014-01-28 4 views
0

У меня есть приложение, использующее Office Interop, и оно запускает внешний вид, создает электронное письмо и прикрепляет к нему файл. Моя проблема заключается в том, что программа не будет продолжать обработку до тех пор, пока электронное письмо не будет отправлено/закрыто. Как мне его отпустить, поэтому, как только код будет запущен, остальная часть кода будет продолжена, пока адрес электронной почты будет изменен конечным пользователем? Это так же просто, как запустить этот код в другом потоке или есть лучший способ?Управление выпуском Outlook

if (!Common.IsOutlookRunning()) 
      Process.Start("OUTLOOK.EXE"); 
     var outlook = new Outlook.Application(); 
     var message = (Outlook.MailItem)outlook.CreateItem(Outlook.OlItemType.olMailItem); 
     message.BodyFormat = Outlook.OlBodyFormat.olFormatHTML; 
     var recipients = (Outlook.Recipients)message.Recipients; 
     var recipient = (Outlook.Recipient)recipients.Add(hire.Email); 
     message.HTMLBody = "<p style=\"font-size:9.0pt;font-family:Verdana,sans-serif;color:#000066\">" + 
     "Dear " + hire.ClientName + ",<br><br>"; 
     message.HTMLBody += "Please see the attached document. If you have any queries, please feel free to give me a call or send me an email."; 
     var position = (int)message.HTMLBody.Length + 1; 
     const int attachType = (int)Outlook.OlAttachmentType.olByValue; 
     const string attachmentName = "Hire Docket"; 
     message.Attachments.Add(path, attachType, position, attachmentName); 
     message.Subject = hire.Quote ? "Hire Quote" : "Hire Docket"; 
     message.BCC = "[email protected]"; 
     message.HTMLBody += "</p>" + Common.ReadSignature(); 
     recipient.Resolve(); 
     message.Display(true); 

ответ

1

Чтобы исправить это, я запустил его в другом потоке и оставил основной поток, чтобы делать другие вещи.

var thread = new Thread(() => Method(Parameters)); 
thread.Start(); 
Смежные вопросы