我的C#VSTO Outlook 2010 AddIn将数百个MAPI文件夹异步添加到导入的pst文件。 (PST在Outlook foldertree存在)Outlook 2010 VSTO AddIn:UI随意冻结,同时向PST异步添加文件夹
下面是一个例子:
Task.Factory.StartNew(() => {
... //get pstStore
var rootFolder = pstStore.GetRootFolder();
for (int i = 0; i < 500; i++)
{
var folder = rootFolder.Folders.Add("Test" + DateTime.Now.Ticks);
Thread.SpinWait(1000); //emulate work
Marshal.ReleaseComObject(folder);
}
Marshal.ReleaseComObject(rootFolder);
});
观UI在rootFolder.Folders.Add(...)
随机冻结2-3秒。有时在20之后,有时在50个添加文件夹之后。
任何帮助/提示将不胜感激。
+1写这篇详细的提示。我正在考虑使用C++/cli和IMAPIFolder :: CreateFolder(..)。如果失败,你的回答将被接受,我会购买你的赎回图书馆。 – eWilli
我设法让它使用C++/cli和扩展MAPI。 [见MSDN](https://msdn.microsoft.com/en-us/library/office/cc815501.aspx)。速度的差异是惊人的。对于不熟悉托管C++的人,我建议使用Redemption!接受的答案。 – eWilli