Outlook加载项C夏普:循环问题

时间:2011-08-18 17:44:27

标签: c# outlook outlook-addin

我正在为Outlook编写一个快速的小插件,它将每隔x分钟检查一次我的电子邮件并处理这些消息。这是我的第一个加载项,所以我对运行时事件的顺序有点不确定,但我遇到的问题是我在我的addin load事件中使用了一个带有睡眠器的while循环,这导致了outlook永远不会完全开放。

private void ThisAddIn_Startup(object sender, System.EventArgs e)
{
    while (true)
    {
        CheckMail();
        System.Threading.Thread.Sleep(100000);
    }
}

有没有办法在执行此循环之前完全打开Outlook?

1 个答案:

答案 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中定期举办活动的方法,而不使用提醒来存档我的电子邮件,但这是我找到的唯一解决方案。