VB.net AddIn langsamer als VBA?

  • VB.NET

    VB.net AddIn langsamer als VBA?

    Hallo,

    Ersteinmal hoffe ich, dass ich hier im richtigen Forum gelandet bin.

    Nun zu meiner Frage:
    Ich habe in meinem Unternehmen in Outlook 2013 ein VBA Makro mit Userform erstellt, dass markierte eMails nach bestimmten Projektnummern im Betreff durchsucht, danach die öffentlichen "Exchange Ordner" (die genau diese Nummer im Namen enthalten) durchsucht und die Mails dann in die entsprechenden Ordner kopiert/verschiebt.

    Das läuft als VBA Makro sehr gut, und nun habe ich das Ganze aufgrund der besseren Verbreitbarkeit im Unternehmen unter Visual Studio in VB.net geschrieben.
    Hier scheint jedoch die selbe Schleife die unter VBA die Ordner durchsucht nach ca. 3 bis 5 Mails (Diese Durchläufe gehen wunderbar schnell) ins Stocken zu geraten und wird extrem langsam, so dass scheinbar nichts mehr passiert.

    Auf meinem privaten PC mit selbst angelegter "Test-Outlook-Ordner-Struktur" funktioniert alles, dort nutze ich Visual Studio. Das Problem tritt erst auf nachdem ich das AddIn auf meinem Arbeits-PC installiert habe. Hier ist der Umfang an öffentlichen Ordnern gewaltig, diese zu laden dauert schon sehr lange.

    Kann es hier zwischen einem VBA-Makro und einem VB.net AddIn irgendwelche Performance Unterschiede geben?
    In VBA habe ich den "DoEvents" Befehl genutzt um das ganze stabiler laufen zu lassen. In VB.net habe ich mit BackgroundWorkern gearbeitet.

    Die Schleife, die vorher ausgewählte Oberordner durchsucht sieht forgendermaßen aus:

    VB.NET-Quellcode

    1. Private Sub Suchdurchlauf(ByVal OLOrdnerTemp As Outlook.Folders)
    2. For Each Unterordner In OLOrdnerTemp
    3. Treffer = (Unterordner.Name Like Suchausdruck)
    4. If Treffer = True Then
    5. ZielOrdnerOL = Unterordner
    6. Exit Sub
    7. ElseIf Treffer = False Then
    8. Suchdurchlauf(Unterordner.Folders)
    9. If ZielOrdnerOL IsNot Nothing Then
    10. Exit Sub
    11. End If
    12. End If
    13. Next
    14. End Sub