Получение Outlook.Хранилище работает крайне медленно

#vb.net #outlook #vsto #outlook-addin

#vb.net #outlook #vsto #outlook-addin

Вопрос:

Я пытаюсь привязать к ItemLoad и ItemSend всех хранилищ в клиенте Outlook, но это происходит очень медленно.

Вот мой код…

 Private Shared WithEvents _explorer As Outlook.Explorer = Nothing
Private Shared WithEvents _inspectors As Outlook.Inspectors

Public Shared Sub Init()
    _explorer = Globals.ThisAddIn.Application.Explorers.Application.ActiveExplorer
    _inspectors = Globals.ThisAddIn.Application.Inspectors

    Dim ns As Outlook.NameSpace = Globals.ThisAddIn.Application.GetNamespace("MAPI")
    Dim stores As Outlook.Stores = ns.Stores
    For i As Integer = 1 To stores.Count
        Try
            Dim store As Outlook.Store = stores(i)
            Dim sentFolder As Outlook.Folder = CType(store.GetDefaultFolder(Microsoft.Office.Interop.Outlook.OlDefaultFolders.olFolderSentMail), Outlook.Folder)
            Dim sentItem As Outlook.Items = sentFolder.Items
            AddHandler sentItem.ItemAdd, AddressOf MailSendt
            Marshal.ReleaseComObject(store)
        Catch ex As System.Exception
        End Try
    Next
    Marshal.ReleaseComObject(stores)
    Marshal.ReleaseComObject(ns)
End Sub
  

Строка…

 Dim store As Outlook.Store = stores(i)
  

… чрезвычайно медленно. Это может занять 2-4 секунды, а когда у моих пользователей около 20-30 магазинов, это может занять пару минут, когда Outlook заблокирован.

Мы используем последнюю версию Office 365.

Есть идеи, как это ускорить?

Спасибо.

Комментарии:

1. Вы пытаетесь установить обработчики событий для всех элементов в профиле ?!

2. Я пытаюсь прослушать все входящие и отправленные сообщения пользователей, поэтому я получу уведомление (по электронной почте), когда элементы будут отправлены или получены. Это касается их личных папок и общих почтовых ящиков.

3. Зачем вам ItemLoad и ItemSend для тысяч элементов?

4. Я не загружаю или не отправляю ItemSend для тысяч элементов — только для 20-30 почтовых ящиков. Я прослушиваю почтовые ящики для новых элементов.

5. Так что это приложение. ItemSend и Application. ItemLoad, верно? Тогда зачем вам открывать магазины?