【问题标题】:Outlook plugin move mail item is slowOutlook插件移动邮件项目很慢
【发布时间】:2015-11-05 06:07:10
【问题描述】:

我正在开发一个用于将电子邮件移动到文件夹的 Outlook 插件。 工作正常,但看起来 MailItem 的移动方法很慢,需要 4-5 秒才能移动 10 封电子邮件 我正在使用类似

for (int i = folder.Items.Count; i > 0; i--)
{
     Outlook.MailItem mi = (Outlook.MailItem)theRootFolder.Items[i];
     if (mi != null)
     {            
              mi.Move(destFolder);         
     }

【问题讨论】:

    标签: c# move outlook-addin mailitem


    【解决方案1】:

    不要在单行代码中使用多个点:

     folder.Items.Count
    

    打破属性和方法调用链,并在单独的代码行中声明每个调用。因此,您将能够立即释放底层 COM 对象。使用完后,使用System.Runtime.InteropServices.Marshal.ReleaseComObject 释放 Outlook 对象。如果您的加载项尝试枚举存储在 Microsoft Exchange Server 上的集合中的 256 个以上的 Outlook 项目,这一点尤其重要。然后在 Visual Basic 中将变量设置为 Nothing(在 C# 中为 null)以释放对对象的引用。在 MSDN 中的 Systematically Releasing Objects 文章中阅读更多相关信息。

    请注意,MailItem 类的Move 方法返回一个应该在之后释放的对象。

    【讨论】:

    • 嗨,尤金,感谢重播,不幸的是,没有任何改进,看起来在移动一封电子邮件后 Outlook 正在尝试阅读下一封电子邮件,并且正在为此花费时间
    猜你喜欢
    • 2014-12-18
    • 2019-02-10
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-22
    相关资源
    最近更新 更多