C# Outlook加载项C夏普:While循环问题
我正在为Outlook编写一个快速的小插件,它将每隔x分钟检查我的电子邮件并处理邮件。这是我的第一个外接程序,所以我对运行时事件的顺序有点不确定,但我遇到的问题是,我在加载外接程序事件上使用了一个while循环和一个sleep,这会导致outlook永远无法完全打开C# Outlook加载项C夏普:While循环问题,c#,outlook,outlook-addin,C#,Outlook,Outlook Addin,我正在为Outlook编写一个快速的小插件,它将每隔x分钟检查我的电子邮件并处理邮件。这是我的第一个外接程序,所以我对运行时事件的顺序有点不确定,但我遇到的问题是,我在加载外接程序事件上使用了一个while循环和一个sleep,这会导致outlook永远无法完全打开 private void ThisAddIn_Startup(object sender, System.EventArgs e) { while (true) { CheckMail();
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
while (true)
{
CheckMail();
System.Threading.Thread.Sleep(100000);
}
}
是否有一种方法可以在执行此循环之前完全打开Outlook?您可以尝试将其从提醒事件中挂起,而不是将其休眠。为此,请创建一个提醒。当它触发时,将调用此代码。然后可以抛出
CheckMail()代码>在那里。这是在VBA中,因此您必须转换它
Private Const REMINDER_SUBJECT As String = "CHECKEMAILREMINDER"
Private Sub Application_Reminder(ByVal Item As Object)
Dim oTask As Outlook.TaskItem
If TypeOf Item Is Outlook.TaskItem Then
Set oTask = Item
If oTask.Subject = REMINDER_SUBJECT Then
oTask.ReminderTime = DateAdd("m", 1, Now)
oTask.Save
End If
End If
End Sub
我花了相当长的时间寻找一种方法,可以在outlook中设置常规事件,而不使用提醒来归档电子邮件,但这是我找到的唯一解决方案。启动方法必须结束,因此您不能在其中设置无休止的循环。您可以在其中启动一个计时器,该计时器将每x次执行一次。看看谢谢你的提示,效果很好。