我正在为Outlook编写一个快速的小插件,它将每隔x分钟检查一次我的电子邮件并处理这些消息。这是我的第一个加载项,所以我对运行时事件的顺序有点不确定,但我遇到的问题是我在我的addin load事件中使用了一个带有睡眠器的while循环,这导致了outlook永远不会完全开放。
private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
while (true)
{
CheckMail();
System.Threading.Thread.Sleep(100000);
}
}
有没有办法在执行此循环之前完全打开Outlook?
答案 0 :(得分:2)
您可以尝试将其从提醒事件中删除而不是将其暂停。为此,请创建提醒。当它触发时,将调用此代码。然后你可以在那里扔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中定期举办活动的方法,而不使用提醒来存档我的电子邮件,但这是我找到的唯一解决方案。