Outlook插件移动邮件项很慢

时间:2015-08-12 14:43:40

标签: c# move outlook-addin mailitem

我正在开发一个用于将电子邮件移动到文件夹的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);         
     }

1 个答案:

答案 0 :(得分:0)

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

 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方法返回一个应该在之后释放的对象。