Vba 在执行外接程序之前成功打开Outlook

Vba 在执行外接程序之前成功打开Outlook,vba,vb.net,outlook,vsto,outlook-addin,Vba,Vb.net,Outlook,Vsto,Outlook Addin,我构建了一个VSTO Outlook加载项(使用Visual Studio)将电子邮件从一个文件夹复制到另一个文件夹,然后匹配一些条件 我将代码放在Sub ThisAddIn\u Startup()下,它从Outlook启动开始运行。这会造成在执行此加载项功能之前完全打开Outlook应用程序的延迟。处理启动屏幕以打开Outlook主窗口需要更长的时间 是否有任何方法可以延迟外接程序功能的执行,以便先成功打开outlook并开始同步电子邮件,然后在特定时间(例如5分钟)后执行外接程序 我尝试了“

我构建了一个VSTO Outlook加载项(使用Visual Studio)将电子邮件从一个文件夹复制到另一个文件夹,然后匹配一些条件

我将代码放在
Sub ThisAddIn\u Startup()
下,它从Outlook启动开始运行。这会造成在执行此加载项功能之前完全打开Outlook应用程序的延迟。处理启动屏幕以打开Outlook主窗口需要更长的时间

是否有任何方法可以延迟外接程序功能的执行,以便先成功打开outlook并开始同步电子邮件,然后在特定时间(例如5分钟)后执行外接程序

我尝试了“Threading.Thread.Sleep()”,但它冻结了整个过程,并为打开Outlook应用程序增加了额外的延迟时间

Public Class ThisAddIn
   'Threading.Thread.Sleep(60000)  

   Public Sub ThisAddIn_Startup() Handles Me.Startup        
      Call CopyMails()
   End Sub

   Private Sub ThisAddIn_Shutdown() Handles Me.Shutdown
   End Sub

   Public Sub CopyMails()
      'Some codes here
   End Sub

End Sub

我不确定Outlook API是否有更好的方法来实现您的目标,但可以通过以下方式实现5分钟的延迟:

Public Async Sub ThisAddIn_Startup() Handles Me.Startup
    Await Task.Delay(300000)
    CopyMails()
End Sub

非常感谢,你的回答很好地达到了我的目的。